Puppet/Razor Laptop Lab – Part 1: Puppet Overview
In the coming weeks, I’ll be writing a series of posts revolving around setting up a lab to show off the the DevOps tool called Puppet. Puppet is a system automation tool that aims to provide system administrators the ability to configure operating systems, regardless of flavor, to exacting specs. Take a scenario where you’re asked the update domain name servers for your whole environment on multiple platforms, windows machines, Linux machines, even mac os. Puppet has the ability to jump right in and make these change environment wide with just a few updates to the local puppetmaster server’s repository. Managing changes to thousands of server platforms is now possible without a mish-mosh of bailing wire and twine in script format. Let’s get started by digging in with a 100,000 foot overview of how Puppet works:
Puppet is based on a master-agent architecture model. Puppet agent, a ruby based application, is installed onto the guest OS and then checks into the puppetmaster host. After this initial check-in, the puppetmaster box can can define characteristics to be pushed to the host. The beauty of the system is that the Puppet agent understands how to change change the environment locally. Installing a package on a RHEL based platform, for example, will use the yum command where Ubuntu will use its native apt (pretty cool huh?).
Puppet can also add significant value to the Enterprise organization by helping maintain system compliance. Let’s take the example of “first day Jim”. Jim is told by his manager that he needs to add users to a certain set of machines. Unknowingly, Jim, adds a user to a SOx audited machine with financial data on it. Alarms go off, alerts are triggered, and the change board sharpens their collective pencils, but wait! The machine that Jim just changed checks in to puppetmaster, realizes that an unauthorized change has been made, and pushes the appropriate configuration to the host thereby saving the day. The Chief Compliance Office is relieved, first day Jim perhaps still has a job, and to the organization you’ve added value in a big way. That’s right kids:
There are two versions of Puppet, a community version (available at the low low cost of nothing per machine managed) and an Enterprise version (which you’ll have to pay for beyond 10 machines). For our purposes here, I’d like to use the community version on CentOS. That said, the Puppet learning VM is a great way to get going with some of the basic puppet fundamentals. I encourage you to hop on over to puppetlabs learning site and grab that VM to get started with puppet.
The Learning VM is available for hypervisors that run on just about anything.
In my next post, we’ll get into setting up puppet and puppetmaster (the community edition) on CentOS.
Thanks for reading!