Puppet and Drush

November 28, 2011

I was recently introduced to the great tool Puppet for systems administration by @doismellburning. In a nutshell, it allows the creation of comprehensive system configuration: from packages and configuration files to users, groups and much more. These configurations can then be applied to servers, enabling rapid provisioning. Puppet utilises a concept of ‘classes’, which are a collection of interrelated components (for example, a package, its configuration, and policy for the service it provides).

This hugely simplifies multisystem deployment, and in addition to setup, can subsequently propagate config changes across all managed systems, ensuring that policies are uniformly enforced across a server fleet.

As part of my experimentation with Puppet, I’ve created a class to install Drush, a commandline tool for managing Drupal installations. This was a relatively quick and easy first project, but helped me to cut my teeth on the basic concepts. The work needs some tidying up, but can be found at my Github for those interested.