Skip to content

Puppet Concepts

Puppet describes system state in manifests and applies that desired state to managed nodes.

Core Terms

  • Manifest: a Puppet file that declares configuration.
  • Module: a reusable package of manifests, templates, files, and facts.
  • Class: a reusable block of Puppet code.
  • Resource: an item Puppet manages, such as a package or service.
  • Fact: system information discovered from the node.
  • Agent: the component that applies the catalog on the node.
  • Master or server: the central component that compiles catalogs.

Execution Model

Puppet compiles a catalog of desired state and then converges the node toward that catalog. The model is strong when you need consistent system configuration across many machines.

Example Resource

package { 'nginx':
  ensure => installed,
}

service { 'nginx':
  ensure => running,
  enable => true,
}

Practical Notes

  • Keep modules reusable and focused.
  • Use facts for platform-specific branching.
  • Prefer declarative resources over imperative shell commands.