Puppet is an open source software configuration management tool founded by Luke Kanies in 2005. It is written in Ruby and released as a free software under GNU General Public Licence (GPL ) until version 2.7.0 and the Apache License 2.0 after that.
Puppet is designed to manage the configuration of Unix-like and Microsoft Windows systems declaratively. The user describes system resources and their state, either using Puppet’s declarative language or a Ruby DSL (domain specific language). This information is stored in files called “Puppet manifests”. Puppet discovers the system information via a utility called Facter, and compiles the Puppet manifests into a system specific catalog containing resources and resource dependency, which are applied against the target systems. Any actions taken by Puppet are then reported.
Puppet usually follows client-server architecture. The client is known as agent and the server is known as the master. It can also be used as a standalone application. Puppet Master is installed on one or more servers and the systems that need to be configured install Puppet Agent. Puppet Agents communicate with the server and fetch configuration instructions. The Agent then applies the configuration on the system and sends the status report to the server. Devices can run Puppet Agent as a daemon, which can be triggered periodically as a cron job or can be run manually whenever needed.
Anand Kailas is a student of M.Tech (Computer and Information science) from College of Engineering, Cherthala. He is highly passionate about mastering technology and is very active in social media and technical forums. Currently, he is also doing RHCE certification at his college as an enrichment programme.