Introduction to Puppet- Infrastructure as a Code

Today I am going to discuss basics about Puppet. Puppet is basically a tool used for the configuration Management. With the help of Puppet, you can get the infrastructure as a code or Network as a programmable infrastructure. Infrastructure as code is the requirement for usual DevOps exercises such as version control, code review, continuous integration and automated testing. These exercises get us to continuous provision of quality software that gratifies enterprise networks.

Infrastructure as Code is a method to construct infrastructure which operations teams can accomplish and provision automatically through code and thereby getting free of the requirement of physical works to achieve the same tasks. Infrastructure as Code can also be termed as programmable infrastructure.

Puppet Enterprise offers a strong audit trail with comprehensive reports on the state of infrastructure. We can simply see who altered what, and when and how out-of-policy alterations are spontaneously remediated back to the needed state.

Fig 1.1-Puppet: Infrastructure as a Code

Puppet consists of two physical components and these components are as Puppet Server which is also called as Puppet master and the node.

Puppet server/master: This is the component of puppet infra that grips all the data about all the machines that it can configure.
Node: A machine that can be managed by Puppet in called a Node.

Puppet Server comprises all the configuration for different hosts. Puppet server will run on this master server.The puppet agent and master communicate with each other via a secure encrypted channel implemented using the help of SSL.

Specific software needs to be installed on each of the above machines
Puppet agent: It is an agent that runs on the Node servers
Puppet server: A software which runs on the puppet server where all the node configurations are stored. The puppet server listens to any connection desires starting from agents for configuration changes/upgrades.

Puppet provisions all the configurations for a node in a platform independent manner. This means that a configuration can be related on a CentOS machine, an Ubuntu Machine, and a Windows machine.

This is accomplished by an exceptional theory in Puppet, called Resource Abstraction Layer. RAL is an abstraction which permits workers to describe a configuration which can be platform independent also being extremely manageable. At the time of configuration accumulation, the server looks at the Agent’s Node configuration (OS type, architecture, security restrictions etc.) and gathers a sequence accordingly.