Puppet Server is the next-generation application for managing Puppet agents. This platform will carry Puppet's server-side components to a more distributed, service-oriented architecture. We've built Puppet Server on top of the same technologies that have made PuppetDB successful, allowing us to greatly improve performance, scalability, advanced metrics collection, and fine-grained control over the Ruby runtime.
While Puppet Server is meant to replace an existing Apache/Passenger Puppet master stack, there are a handful of differences due to changes in the underlying architecture. Please see Puppet Server vs. Apache/Passenger Puppet Master for details.
Puppet Server depends on Puppet 3.7.3 or later, so if you install it on a system running an older version of Puppet, installation will also upgrade Puppet itself. Please see Installing Puppet Server from Packages for complete installation requirements and instructions.
Puppet Server is compatible with Ruby 1.9. If you are installing Puppet Server on an existing system with Ruby 1.8, the behavior of some extensions, such as custom functions and custom resource types and providers, might change slightly. Generally speaking, this shouldn't affect core Puppet Ruby code, which is tested against both versions of Ruby.
Puppet Server uses its own JRuby interpreter, which doesn't load gems or other code from your system Ruby. If you want Puppet Server to load any additional gems, use the Puppet Server-specific gem
command to install them. See Puppet Server and Gems for more information about gems and Puppet Server.
Puppet Server honors almost all settings in puppet.conf
and should pick them
up automatically. However, we have also introduced some new Puppet
Server-specific settings---please see the [Configuration]
(./documentation/configuration.markdown) page for details. For more information
on the specific differences in Puppet Server's support for puppet.conf
settings as compared to the Ruby master, see the [puppet.conf differences]
(./documentation/puppet_conf_setting_diffs.markdown) page.
Much of the existing documentation on External CA Support for the Ruby Puppet Master still applies to using an external Certificate Authority in conjunction with Puppet Server. There are some differences to bear in mind, however; see the External CA Configuration page for details.
In network configurations that require external SSL termination, you need to do a few things differently in Puppet Server. Please see the External SSL Termination page for details.
Puppet Server provides several command-line utilities useful for development
and debugging purposes. These commands are all aware of puppet-server.conf
and the gems and Ruby code specific to Puppet Server and Puppet, while keeping
them isolated from your system Ruby.
For more information, see Puppet Server Subcommands.
As this application is still in development, there are a few known issues that you should be aware of.
If you are a developer who wants to play with our code, these documents should prove useful:
Feature requests? Found a bug? Want to see what issues are currently in flight? Please visit our Jira project.
Copyright © 2013 -- 2014 Puppet Labs
Distributed under the Apache License, Version 2.0
Cursive is a Clojure IDE based on IntelliJ IDEA. Several of us at Puppet Labs use it regularly and couldn't live without it. It's got some really great editing, refactoring, and debugging features, and the author, Colin Fleming, has been amazingly helpful and responsive when we have feedback. If you're a Clojure developer you should definitely check it out!
JRuby is an implementation of the Ruby programming language that runs on the JVM. It's a fantastic project, and it is the bridge that allows us to run all of the existing Puppet Ruby code while taking advantage of all of the advanced features and libraries that are available on the JVM. We're very grateful to the developers for building such a great product and for helping us work through a few bugs that we've discovered along the way.