In system administration every system administrator performs some similar jobs in their own domain. like managing user account, update patches, configure firewall, install software, etc. No matter how small or big your environment is you have to perform this type of activity in your environment frequently.
For opening a user account you have to go through each server and open that account, set the home directory, set quota, set permission etc. If you have a small setup like 5 to 10 servers in your environment then you can somehow manage it. But what If you have 10 Plus server in your environment or if you have 100/200 plus server in your environment? That will start the nightmare and if you did something wrong, it will also take time to figure it out.
Think about a system who can do the same thing for you in few minutes. What! is it possible? Believe me, my expression is exactly like you when i first came to know about Puppet.
What is Puppet?
In computing, Puppet is an open-source configuration management tool. It runs on many Unix-like systems as well as on Microsoft Windows, and includes its own declarative language to describe system configuration. Puppet is produced by Puppet Labs, founded by Luke Kanies in 2005. It is written in Ruby and released as free software under the GNU General Public License (GPL) until version 2.7.0 and the Apache License 2.0 after that.
That’s from Wikipedia. What i like to say about puppet that this software package can do exactly what i say rule them all. From one puppet master server you can manage all your servers. Like you can create a user account and push that account in as many servers as you like with just a simple configuration script. You can perform any system update or can install a software in the same way, can add or edit a firewall rule, etc. Cloud or non-cloud puppet can run in both environments. Cool, right?
Puppet came in free open source version or paid commercial enterprise version . We will cover the Open source puppet version in this tutorial.
Before starting the installation and configuration, lets see how it works and lets familiarized with some common term use in the puppet world. By knowing this term you are not going to be a master of puppet but at least it will help you to start.
How it works
Puppet is usually deployed in a simple client-server arrangement. All of the client which will be managed by the puppet server is called “node” and the server is called “master“. “Agent” is a software package which runs on all server nodes including master. It allows puppet to do the work of installing and configuring software on each individual server node. The client node runs “Facter“, a puppet inventory tools and collect the” fact“ like Mac/IP address, host name, basic hardware info, operating system type etc, and send this fact to the server. By default the client connects to the server every 30 minutes or it can connect on demand basis. The server compiles the configuration script which calls “manifest” into “catalogs” and sends it to the client. The client checks the catalog it receives from the server and apply it. All the information is exchanged between master and client node is encrypted by SSL.
In short that’s actually how puppet works. There are more options and term which we will use during installation and configuration phase. By now you know what is called a master in puppet and how it works. It is also possible to deploy puppet without a master called masterless puppet. In this tutorial i’m not going to focus on masterless puppet.
Summary
Puppet can run on a wide variety of operating systems. You can find the list here. Installation and initial setup of puppet is very simple. In a client-server arrangement communication is secure. The puppet has an established and very organize support community through Puppet Labs.
This guide will give you a basic idea about puppet. To know more you can visit the official site of the puppet. Explore it, a really good and robust software for automating your IT infrastructure. That’s all for today. I’ll show the installation and configuration of puppet in the next tutorial.
If you enjoyed the post, please share it with your network and let me know your thoughts in the comments.
About the Author: Imtiaz is working in a financial organization in Bangladesh and having experience in system, network and security administration. Feel free to contact with him on LinkedIn or Twitter.