Puppet is an indispensable configuration management and Linux automation tool for the system administrator who prefers to spend her time improving the infrastructure, rather than doing tedious manual labour. Chef, Puppet, Fabric and other tools can be a huge boost to productivity. From small beginnings, you can grow your Puppet installation to manage a whole network, or many networks. However, with great power comes a steep learning curve. There are lots of great resources and tutorials available if you want to learn Puppet - here’s a brief guide for aspiring devops.
Need an introduction to Puppet? Start here.
What is Puppet?
- What is Puppet? - introduction to Puppet from Puppet Labs
- The Craft: Automation and Scaling Infrastructure - Andrew Clay Shafer’s thoughtful argument for automation as a way of liberating system administrators to do more important things. “Executable, policy-driven automation doesn’t remove the need for knowledge and skill. Automation allows the knowledge to be invested in infrastructure design, and lets the computers carry out the results of the decisions.”
- Puppet can ease system administration tasks across the network - Ben Martin’s overview and introduction to Puppet for linux.com.
- Puppet Tutorial: Powering Up With Puppet - a gentle introduction to Puppet for complete beginners, starting with how to install Puppet and set up a simple manifest to control your own machine.
- Client/Server Puppet - how to exchange certificates so that Puppet can control other machines.
- Puppet Recipes - a brilliant collection of user-contributed and peer-reviewed recipes from the Puppet wiki. These freely-available manifests are a perfect place to start looking at Puppet code and getting tips on how to write your own. Also, the Puppet manifests listed here are often usable directly in your own infrastructure with very little modification
- Puppet Cookbook - a collection of task-oriented solutions in Puppet, curated by Dean Wilson
- Puppet Forge - user-contributed modules for Puppet
Puppet and MySQL
- Puppet and MySQL: create databases and users - a handy recipe to manage MySQL databases and users for application.
Deployment with Puppet
- Automated deployments with Puppet and Fabric - a comparison of two different approaches to automated deployment, one using Puppet and the other using Fabric. In many ways the two tools are complementary; where you decide to draw the boundary between what should be done by Puppet and what by Fabric (or Cobbler, or Kickstart, or Capistrano…) is a matter of judgment and preference.
Puppet and Nagios
- Automatic Monitoring with Puppet and Nagios - Puppet has excellent support for the open-source Nagios monitoring framework, and you can have Puppet automatically generate Nagios configurations for monitoring your servers.
Puppet and Drupal
- Drupal Puppet recipes - managing Drupal sites and servers using Puppet and Drush, a powerful command-line Drupal admin tool
Puppet and Hudson
- Continuous Integration for Puppet - how to set up Hudson (or another CI server) to automatically build and test Puppet manifests.
Puppet resource types and configuration language.
- Puppet 2.7 Language Reference - a detailed introduction to the syntax of the Puppet language, and how to use it.
- Puppet Type Reference - the complete guide to Puppet’s resource types, or providers, such as users, files, commands and cron jobs.
- Scaling Puppet with Git - Stephen Nelson-Smith on an innovative distributed Puppet architecture using Git
- The Puppet 2.7 Cookbook - a collection of powerful recipes and techniques developed here at Bitfield Consulting for you to use and adapt in your own infrastructure
- Pulling Strings With Puppet: Configuration Management Made Easy - the first book on Puppet and still a great introduction
Puppet mailing lists
- puppet-users list - the main mailing list for discussion about Puppet, with questions and answers by hundreds of contributors. The list archives can also provide invaluable Puppet help.
Puppet user groups and meetings
- The London Devops Curry Nights meetings often cover Puppet and associated tools, bringing together sysadmins and developers to discuss topics like continuous integration, automated deployments and infrastructure automation. Devops folk tend to cluster around Puppet, Chef, Fabric, Cobbler and other Linux automation frameworks, and there can be lots of valuable knowledge exchange at these monthly meetups.
Puppet IRC channels
- #puppet on Freenode is the best place to start looking for Puppet help and advice; if you hang out there long enough you might even be able to help a few people yourself.
Comparison of Puppet with other tools
- Puppet vs Chef: 10 reasons Puppet wins - my own explanation of why I think Puppet is still the leading technology in this space, and why I recommend it to clients and friends alike.