Puppet Series: Howto Centralize System Administration of Debian Systems Using Puppet
Automation and centralized management are important when managing more than a few systems. In Windows, ePolicy Orchestrator can be used to distribute software, patch systems, enforce security, etc. to thousands of systems. While searching for an open source solution for centralized management of Linux systems, I found that CFEngine and Puppet were probably the best options. After installing and testing both systems, I concluded that Puppet is the easier of the two to use. After using Puppet for nearly a year, I decided to share the basics of installing and configuring Puppet in a tutorial-style article. The following series of tutorials demonstrates how to install Puppetmaster and Puppet on Debian Lenny systems. Full documentation of Puppet can be found on the ReductiveLabs web site at http://reductivelabs.com/.
Our Puppet System
This tutorial assumes you have three Debian Lenny systems already configured with their own host names and IP addresses. In this example, one Puppetmaster and two Puppets will be used to demonstrate the use of Puppet. The Puppetmaster is the central command server, which holds files and instructions for the Puppets. Each Puppet checks in to the Puppetmaster regularly to receive new or changed instructions and/or files. All commands and operations should be executed as root unless otherwise specified. This tutorial will cover the basics of installing Puppet and a simple module. Please refer to the official documentation to learn about the capabilities of Puppet.

The 3 servers to be used in this tutorial are as follows:
puppetmaster.example.com 192.168.1.100 puppetmaster puppet1.example.com 192.168.1.10 puppet1 puppet2.example.com 192.168.1.20 puppet2
Puppet Tutorials
Part 1: Howto Install and Configure Puppetmaster and Puppets
This tutorial demonstrates how to install and configure Puppetmaster and Puppet on three servers.
Part 2: Howto Create a Puppet Module
This tutorial demonstrates how to implement a module in Puppet, which will distribute a hosts file to Puppets from the Puppetmaster.
