| When home baked bash just wont do (Baird & Charlemane) |
Well turns out the weathermen won and we system engineers are all going to spend a lot of time watching the clouds.
Despite the glowing promises from vendors clouds are not a one stop solution for your IT challenges. For every problem they fix they also create one. For every way they make your life easier they find a way to make it more difficult. When managed correctly, and used only where it makes sense they are like all things a very powerful tool.
One great way to use them is if you are in retail sales with a big on line presence. Target, Amazon, or Best Buy experience exponential growth during the holiday shopping season. To maintain a fleet of servers year round that you only need from October to mid January is a foolish waste of money, especially when in a cloud you can spin up a ten thousand servers on short notice.
The cost for that is a nightmare for system configuration engineers. When you're tasked with keeping 5, 50, or 500 servers all marching to the same drum you can get away with rsync over ssh and a dozen other tools in the UNIX administrators tool kit.
When those numbers start growing north of a thousand and the needs on those servers keep changing you hit the law of diminishing returns, and you hit it hard. It's time to see if you can find a sane way to make the servers all behave as intended.
Two of the tools that appear to have the most traction are Chef and Puppet. I'll be spending the next few weeks learning both but lets start with Puppet.
Puppet is IT automation software that helps system administrators manage infrastructure throughout its lifecycle, from provisioning and configuration to orchestration and reporting. Using Puppet, you can easily automate repetitive tasks, quickly deploy critical applications, and proactively manage change, scaling from 10s of servers to 1000s, on-premise or in the cloud. -- Puppet LabsIn short puppet provides a mechanism by which you can write, apply, and manage configuration items in your infrastructure. It can also track and report variations via an easy to use web interface which of course makes the low tech managers in your life very happy.
What Puppet provides even the most competent system administrator is abstraction. Do you want to install the ssh package on all of your AIX, Solaris, and Linux Boxes at the same time? Just do this...
package { 'openssh-server':Yes running "yum install sshd" from a key or RHN satellite server would be faster but beyond the fact that the commands are ever so different on other UNIX platforms there is the matter of configuration management. A properly set up puppet environment would put sshd, with my master configuration, on every node. A properly configured environment can also watch for master configuration changes and apply them without being asked.
ensure => present,
before => File['/etc/ssh/sshd_config'],
}
file { '/etc/ssh/sshd_config':
ensure => file,
mode => 600,
source => '/root/examples/sshd_config',
}
service { 'sshd':
ensure => running,
enable => true,
subscribe => File['/etc/ssh/sshd_config'],
}
Even if you don't like the idea of using someone elses recipe in favor of your home baked scripts you should start to learn these tools because are really catching on in the UNIX sphere. During a recent contract search about three quarters of the UNIX Engineering jobs asked about chef or puppet.
While I wait for my new hardware to arrive I will play with the downloadable Virtual Machine provided by puppet labs. It's a great way to spin up an instance on which to learn the syntax of puppet. You can download the VMWare or Virtual Box image here.
Once you have the virtual image just spin it up and you can log into the console server and web interface. Puppet labs provides a series of learning exercises to go through.
![]() |
| Fresh Puppet VMWare Lab Client |
The tools here, and the labs provided by Puppetlabs, are enough to make you very comfortable. Within a few late evenings of playing around I was able to start managing users, settings, configurations, and package deployment with Puppet.
Part one of the the puppet labs tutorial is all about learning the syntax for manifest, classes, and templates on a single machine. When completed I will drop a few vm's on my lab server and play with Puppet Enterprise.
After going through all of the lessons and performing all of the exercises you will be able to perform most basic configuration tasks through puppet. Everything from "hello world" to user / package management, to classes and templates.
If you're an enterprise sysadmin, or an aspiring one, then learning a little Puppet is worth 8-10 hours of your time.
Next up for me is Puppets main new competitor, Chef...

