Puppet terminology

Last updated: 25-Oct-2015

Resource A resource describes some aspect of the system, like a specific file, a service or a package.
Resource declaration A specification of the desired state of the resource. Also tells Puppet to add it to the catalog.
Resource Abstraction Layer (RAL) Components of Puppet that interact with the system. This is where the abstract syntax of Puppet is being translated to system specific commands.
Resource Types Every Resource has a Type that determines the kind of configuration it manages. This way simular Resources are grouped into Resource Types. Example: file hello.txt is of Resource Type files.
Resource Query Determine the state of a specific resource via the RAL.
Provider Providers are the fulfillment of a resource. Providers can differ per platform. (RedHat, Debian, OSX, Windows) Example: A Resource Type like package has providers yum for RedHat and apt for Debian.
Node A server that is being maintained by a Puppet Master.
Node Group Nodes that have common characteristics can be grouped into Node Groups. You can create a hierarchy of Node Groups.
Catalog The catalog is the specification how the node should behave. Puppet compiles manifests into a catalog.
Report An API that can send data to Puppet or to other tools.
Fact Information from the node about its state.
Facter Tool that collects information (facts) about the node.
Agent Sends facts to the Master
Master Sends a catalog to the agent with specifications how the nodes should behave.
Abstraction Resources in Puppet are abstracted from underlying providers
Declarative Modeling Language (DSL) Domain Specific Language. Model the desired state and let Puppet figure out how to enforce it. The Ruby DSL was deprecated in Puppet 3x, and is removed in Puppet 4.0.0. Starting in Puppet 2.6.x, manifests can be written in Ruby.
Manifest Manifests are files containing Puppet code. They are standard text files saved with the .pp extension. Most manifests should be arranged into modules.
Template Templates are documents that combine code, data, and literal text to produce a final rendered output. The goal of a template is to manage a complicated piece of text with simple inputs.
Module A directory that contains Puppet configurations.
Class Definition of a collection of resources that are managed together as a single unit. Example: package openssh, file /etc/ssh/sshd_config, and service sshd.
Namespace Class names that map directly to where Puppet expects to find them. Puppet expects to find classes in the manifests directory of your module.
Define Specify contents and behavior of a class. make a class available to be declared
Declare Direct Puppet to include or instantiate a given class.
Apply When using puppet apply local facts are used to build the catalog. The catalog is send to the node agent, and the desired state is imposed on the node.
Noop mode Simulation without enforcing.
Convergence The process where Puppet maintains the desired state of a node.
Attribute Describes the state that Puppet should converge the resource to. Example: resource is JimJones, attribute is present.
Drift Configuration drift is when a server deviates more and more over time from the desired state.