How Puppet Works

Puppet enables you to define the software and configuration that a system requires and then maintain that specified state. The following graphic shows the Puppet agent-server architecture where a Puppet Server (server) node controls the configuration information for a fleet of managed nodes that run the Puppet Agent (agent).


Graphic describes the Puppet agent-server topology where the Puppet Server communidates with Puppet Agents.

The Puppet Server controls the configuration information. Each Puppet Agent-managed node configures itself by requesting its own configuration from the server.

Puppet uses the Facter utility, which is included in the Puppet software package, to discover information about a system. See Gathering Information About a System by Using Facter.

The server uses manifests to describe the resources to configure for each agent-managed node. Also, you can create a site manifest to define a global configuration that applies to all of the agent-managed nodes.

Typically, agent-managed nodes run the Puppet Agent application as a background service. The agent collects configuration information about itself and sends that information to the server for compilation into a catalog. The catalog describes the configuration of each agent-managed node. The agent-managed node uses the catalog to apply any configuration updates.

Puppet uses a pull mode where agents poll the server at regular intervals to retrieve site-specific and node-specific configuration information. See Overview of Puppet’s Architecture.