What is puppet?

Puppet is an application to automate the configuration of UNIX systems. The puppet master defines the intended system state (packages, files, services, etc) on a central server. On the managed installations an agent regularly fetches the manifest and applies it to the system. The agent sends information (like hostname or IP address) from the system to the server. This can be used to parametrise the configuration.

Puppet doesn’t care whether it manages one or a hundred servers with the same configuration. Contrary to manual configuration, the effort scales with the number of programmed services instead of the number of administrated servers.

Another important factor is the organisation of configuration into modules. These can be developed, tested and deployed independently. David runs the first and one of the biggest public repositories of such modules under the very liberal BSD-License. Thanks to my engagement in the puppet community I was recently asked by multiple IT-departments to hold on-site trainings.

Finally it has to be noted that a manifest (puppet configuration) is a very detailed documentation of the (intended) system state.

David uses puppet for EDV-Beratung&Service to run a web- and mail hosting system. Before the advent of puppet, each customer was configured manually, leading to all kind of errors. With puppet any error gets fixed once and for all by improving the source code of the puppet manifest. Additionally this will also fix the problem on all existing customers.

Leave a Reply