Welcome to the Puppet Quick Start! What is a quick start you ask? Well, our goal is to take you from knowing nothing tobeing a competent Puppet user in about two hours. And what do we need from you to achieve this?
First off, it helps to already be familiar with the idea of configuration management. This is setting up bits of code that will help you provision and manage tens or hundreds or thousands or more-than-thousands of servers from a central, or "master" server. That's what Puppet is, a configuration management platform. And in these next couple of hours, we're going to be installing Puppet, creating an nginx module to run against any Red Hat- or Debian-based servers, use the Puppet Forge, and check out PuppetDB.
First, let's break down how Puppet works.
Our master server runs the Puppet Server, and stores our manifests (server descriptions), our catalogs (the mapping that determines which servers receive what configurations), and our data store data.
The minion runs the
puppet-agent and collects information about itself, which it then in turn sends back to the Master on port 1840; the minions then request a catalog.
Next, the master compiles a catalog for each minion, based on the facts the minion sent it. The master gives that catalog to the minion.
The minion ensures that it matches the described state by applying the catalog and going through each manifest in the catalog; anything that does not match is brought up to date in a process called a "catalog converge."
Once converged, the minion sends a report about the catalog converge back to the master.
In this Quick Start, we'll be creating an nginx module. A module is a full configuration for one specific item, such as nginx. We'll use that to explore not just module creation itself, but some of Puppet's features, like Hiera. We'll see how to use the Puppet Forge to download existing modules, specifically the PuppetDB module. We'll take a brief look at that before ending the course with some suggestions on where to go from here, both if you want to get more in-depth with Puppet and if you want to explore your other configuration management options.
Now let's get started!