Puppet configuration management tools are used to automate the packaging and provisioning of software into an organization's operational IT environment. Puppet is one of the most-used configuration management tools on the market and has a vibrant user and support community. Puppet is used by organizations such as the U.K. insurance company LV=, Staples, NASA, Getty Images and Intercontinental Exchange Inc.
Puppet is written in Ruby. However, it uses its own domain-specific language (DSL) for creating and managing modules. This DSL is declarative: It defines states using resources and classes within its manifests (modules). Users state that DSL is easily learned, being intuitive with built-in code checking. Puppet pairs its DSL with the REST protocol. Puppet operates in a client-server mode, with managed nodes synchronizing details with the server.
Full Puppet Enterprise for use on an unlimited number of nodes comes in at a starting price of $120 per node. Puppet Enterprise with 11 nodes or more comes with Standard Support, covering five day, 8am to 6pm online support in the local customer time zone. Standard Support limits the number of inquiries that can be made in any one month. Premium Support offers unlimited 24/7 support, with telephone support for Priority 1 issues. Pricing for Premium Support is negotiated directly with Puppet.
The current version of Puppet is 4.6.0 released in August 2016. The basic version of Puppet configuration management -- Open Source Puppet -- is available directly from Puppet's website and is licensed under the Apache 2.0 system. Puppet Enterprise, which pulls together various open source components into one package -- see the list of the different open source options Puppet makes available, below -- along with additional functionality such as orchestration, role-based access control, full portability, reporting and compliance, is also free for up to ten nodes. All Puppet modules can be used with this free version.
Puppet offers a range of open source software to build upon Open Source Puppet including:
- Beaker: a cloud-based acceptance testing harness;
- Facter: gathers attributes of nodes and makes these available as variables for Puppet manifests;
- Hiera: manages site-specific data;
- MCollective: used for managing executing administrative tasks across clusters of servers;
- PuppetDB: provides a metadata store of node information;
- Razor: used for bare-metal and virtual machine provisioning; and
- Trapperkeeper: a Clojure framework for hosting long-running applications or services.
One very useful resource for Puppet users is Puppet Forge which is a repository that provides access to over 4,000 prebuilt user contributed modules.
Puppet configuration management supports a range of Linux distributions, along with many Unix variants as well as Windows and OS X. Puppet Server (Puppet Master) needs to be installed on Linux – it currently supports Red Hat Enterprise Linux (RHEL), CentOS, Oracle Linux, Scientific Linux, SUSE Linux Enterprise Server and Ubuntu. Puppet Enterprise can be easily integrated into RHEL as a fully supported option.
Due to the abstraction of the layer between actual resources and the declarative DSL, Puppet configuration management is favored within the systems administrator field, although it is perfectly capable of operating across the DevOps process as well. As Puppet is seen as a relatively easy tool to learn, it can be used by and benefit organizations of all sizes.
Learn how to choose the best configuration management product for your company
Read about why configuration management is so essential for businesses today
Learn how Puppet stacks up against some of its biggest rivals