Puppet Overview


Puppet Software


Puppet Software is an another Configuration Management and Automation Software like Ansible that can be used with Linux and Windows. Puppet is written in Ruby. With Puppet, configurations, management and provisioning tasks are very easy to do. You can also reach Puppet website, here.


You can check also Ansible vs Puppet vs Chef Lesson that we compare three Network Automation Tools.


The server that Puppet Software is loaded, is called Puppet Master. Because of the fact that Puppet uses an Agent Based Model, there is also a Puppet Agent on the managed node. We will also explain these componenet in Puppet Component part.




Puppet Architecture and Puppet Components


Puppet Software uses both Agentless and Agent Based Architecture different than Ansible. As you remembers, Ansible support Agentlesss Architecture. Especially Agentless Archiecture mode of Puppet is supported by many Cisco devices. An Agent is used on the remote devices for Puppet Software. If there is no Agent on remote device Puppet uses an a Proxy Agent  that runs on an external device. So, what are the components used with Puppet?




There are different components used in Puppet Architecture. What are these Puppet Components? Basically Puppet Components are given below:


  • Puppet Master
  • Puppet Agent
  • Catalog
  • Manifests
  • Factor
  • Class
  • Managed Node



Puppet Master manages all the configuration information for the nodes. It is the primary source foır the configurations. Puppet Master controls this configurations by using Manifests. The main duties of Puppet Master is Catalog compiling for the Puppet Agents and to send report to a central place.


Puppet uses mainly an Agent Based Architecture. Beside Puppet Master, on the nodes that will be managed there are Puppet Agents. Puppet Agents are the software that is installed on the managed nodes by Puppet to  collect information about the node.


Catalogs are the entire configuration and manifest files that is compiled by Puppet Master that shows how nodes should be configured. It list the resources that will be managed beside the dependancies between resources.


Manifests are the files with .pp (Puppet Policy) format, in which we define the configuration details for Puppet Agent. In other words, Manifests consist of Puppet Scripts that describes Puppet Agent configuration.


Factor is the component that collects facts and information about Puppet Agent. These information can be a state, an operating system, network interface, ip address etc.


Class is used to orginize the code better in Puppet,  like other prgramming languages.


Managed Node is the device in which Puppet Agent is installed. It is the device that will be managed.


You can check also Ansible vs Puppet vs Chef Lesson that we compare three Network Automation Tools.


How Puppet Software Works?


Puppet Software uses Pull Model. With this Pull Model Puppet Agents checks Puppet Master in regular intervals if are there any new configurations. So, how does Puppet works? Let’s explain six Puppet Operation steps one by one.




  1. Firstly, nodes that will be managed collects information with Factor. In nodes that has Puppet agent, there is a part called Factor that helps Puppet  to dicovery nodes. After Puppet Software installation, these part is also installed.


  1. Secondly, these collected facts are sent to Puppet Master from Puppet Agent.


  1. After that, Puppet Master compiles Manifests into the Catalogs that will say how to configure the nodes.


  1. Then, Puppet Agent pulls this Catalogs from Puppet Master. This Catalogs says that “Your configuration should be like this!”.


  1. Lastly, Puppet Agent configures the device.


  1. Puppet Agent sends a report to Puppet Master.


After the this pull process, if agent needs any update, it can use pull process again. This can be done especially for updates.


More on Manifests


Manifests are compiled into Catalogs in Puppet Software. Each of this Manifests are written in Ruby Language and it says that how will be the configuration of the device. So, what are the steps of Manifests?

Lesson tags: network automation, ansible, puppet, chef
Back to: CCNA 200-301 v1.1 > Automation and Programmability

Leave a Reply

Your email address will not be published. Required fields are marked *

CCNA 200-301 v1.1