Anatomy of a Puppet run, under the hood
We have seen the output of a Puppet run in Chapter 1, Puppet Essentials. Now, let's explore what happens behind these messages.
We can identify the following stages that turn our Puppet code into a catalog that is applied on clients:
- Parsing and compiling: In this phase, the Puppet manifests are fed to the
Puppet::Parser
class, which does basic syntax checks and produces an Abstract Syntax Tree (AST) object. This represents the same objects we have defined in our manifests in a machine-friendly format. Both the facts received from the client and the AST are passed to the compiler. The facts and manifests are interpreted, and the result is converted into a tree of transportable objects, that is, the resource catalog (commonly called catalog). This phase happens on the server, unless we use thepuppet apply
command. - Transport: In this phase, the Master serializes the catalog in the PSON format (a Puppet version of JSON) and sends it over HTTPS to...