Javatpoint Logo
Javatpoint Logo

Puppet Components

Following are the key components of Puppet:

  • Manifests
  • Module
  • Resource
  • Factor
  • M-collective
  • Catalogs
  • Class
  • Nodes

Let's understand these components in detail:


Puppet Master contains the Puppet Slave's configuration details, and these are written in Puppet's native language.

Manifest is nothing but the files specifying the configuration details for Puppet slave. The extension for manifest files is .pp, which means Puppet Policy. These files consist of puppet scripts describing the configuration for the slave.


The puppet module is a set of manifests and data. Here data is file, facts, or templates. The module follows a specific directory structure. These modules allow the puppet program to split into multiple manifests. Modules are simply self-contained bundles of data or code.

Let's understand the module by the following image:

Puppet Components


Resources are a basic unit of system configuration modeling. These are the predefined functions that run at the backend to perform the necessary operations in the puppet.

Each puppet resource defines certain elements of the system, such as some particular service or package.


The factor collects facts or important information about the puppet slave. Facts are the key-value data pair. It contains information about the node or the master machine. It represents a puppet client states such as operating system, network interface, IP address, uptime, and whether the client machine is virtual or not.

These facts are used for determining the present state of any agent. Changes on any target machine are made based on facts. Puppet's facts are predefined and customized.


M-collective is a framework that enables parallel execution of several jobs on multiple Slaves. This framework performs several functions, such as:

  • This is used to interact with clusters of puppet slaves; they can be in small groups or very large deployments.
  • To transmit demands, use a broadcast model. All Slaves receive all requests at the same time, requests have filters attached, and only Slaves matching the filter can act on requests.
  • This is used to call remote slaves with the help of simple command-line tools.
  • This is used to write custom reports about your infrastructure.


The entire configuration and manifest files that are written in Puppet are changed into a compiled format. This compiled format is known as a catalog, and then we can apply this catalog to the target machine.

All the required states of slave resources are described in the catalog.


Like other programming languages, the puppet also supports a class to organize the code in a better way. Puppet class is a collection of various resources that are grouped into a single unit.


The nodes are the location where the puppet slaves are installed used to manage all the clients and servers.

Youtube For Videos Join Our Youtube Channel: Join Now


Help Others, Please Share

facebook twitter pinterest

Learn Latest Tutorials


Trending Technologies

B.Tech / MCA