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.

Author: 
Group: 
Software Design & Engineering
Network Systems & Infrastructure