A brief introduction to Puppet

Last updated: 25-Oct-2015

What is Puppet
Puppet is a tool that can automate configurationmanagement on your IT infrastructure. Basically it automates system administrator tasks on servers.

What does Puppet do
Puppet allows you to define the desired state of a server. Based on this definition it will bring the server in the desired state and keep it there.

Why is this needed
Manual configuration of a server can easily lead to configuration drift, which means you have no idea how the server got it the state that it currently is in, and you cannot reproduce it. Maybe it runs fine for now, but if anything bad happens you really have a problem.

How does Puppet do this
Puppet usually works with a Puppet Master, and Puppet Clients (called nodes). The nodes are the servers that Puppet maintains. For every node the Puppet Master has a configuration stored. On the nodes runs a daemon called the Puppet agent. This agent regularly asks the Puppet Master if there are new instructions for its node. If there are, these instructions are applied by the Puppet agent on the node.

To do its work Puppet needs information from a node. This information is supplied by an external tool called facter. Facter returns this information as variables, with a name and a value. This information can be use as facts.