Puppet Labs recently released Puppet version 4, and has subsequently followed it up with Puppet Enterprise 2015.2. With this release, it’s an opportune time to look at Puppet, what it does, what’s new in this release, and whether it might be useful for your business.
At its core, Puppet is a configuration management system. Systems administrators tell Puppet what the configuration of a host should be; Puppet then enforces that configuration, correcting and logging any configuration drift that might occur. In this way, configuring a large number of system packages identically across systems becomes simple and effective. No longer is it necessary to copy configuration files from one host to another, potentially causing issues if an old version is copied to a new host. Updating the configuration across the enterprise becomes a simple matter of telling Puppet about the change, then letting it enforce it, rather than manually editing every host’s configuration file by hand (a tedious and error prone method at best.)
The benefits of a configuration manager go deeper than the obvious, however. For example, it is easy to configure Puppet to distribute Secure Shell public keys, such that all hosts using SSH have them stored (eliminating a common issue of establishing inter-host trust, and keeping it up to date.)
In the new release, Puppet has cleaned up a number of issues with the Puppet domain-specific language (DSL), removing features that can make it difficult to understand what code is doing, and generally allowing for tidier, more predictable structure in the code. These changes mean that those migrating from Puppet 3.x will need to check their code carefully to make sure it won’t break in the new release; however, they should also make locally written modules easier to maintain in the long run.
Also gone are the Cloud Provisioning tools. These have been replaced with fully supported modules to manage Amazon Web Service instances, and VMware vSphere instances, using the same language used to define other enterprise-wide configuration. Using these tools should make it easy to spin up, and spin down, new fully configured instances in short order, making scale up and development work less painful.
The last new item of note is support for Citrix NetScaler devices, allowing management of NetScaler nodes and pool configuration through Puppet – once again, allowing rapid deployment and scale-up of infrastructure.
So, should your business investigate deploying Puppet? If you aren’t already using configuration management packages (whether Puppet or an alternate solution, such as Chef, Ansible, or Salt), the answer is “almost certainly”: if used judiciously to automate regular business functions, and to aid in streamlining business process bottlenecks within IT, the investment can easily pay off in short order.