What is the architecture of Puppet?

      Puppet is Open Source software. It is based on Client-server architecture. It is a Model Driven system. The client is also called Agent. And server is called Master.

It has following architectural components:

  • Configuration Language: Puppet provides a language that is used to configure Resources. We have to specify what Action has to be applied to which Resource.The Action has three items for each Resource: type, title and list of attributes of a resource. Puppet code is written in Manifests files.
  • Resource Abstraction: We can create Resource Abstraction in Puppet so that we can configure resources on different platforms. Puppet agent uses a Facter for passing the information of an environment to Puppet server. In Facter we have information about IP, hostname, OS etc of the environment.
  • Transaction: In Puppet, Agent sends Facter to Master server. Master sends back the catalog to Client. Agent applies any configuration changes to system. Once all changes are applied, the result is sent to Server.