Puppet is an open source configuration management tool. It is written in Ruby. This software is considered as an alternative to Cfengine configuration management system. I’ve used Cfengine for:
=> Pushing configurations
=> Applying patches
=> IT management
=> Software management
=> Configuration management etc
Both project reduces complexity and non-portability of shell scripting for Unix / Linux configuration management. From the Linux.com article:
The Puppet project allows you to issue system administration commands to one or more machines, and will smooth over the differences between distributions for you. For example, if you want to install MySQL, that action should be your primary aim, and you shouldn’t have to worry about if the machine is running Maemo, Ubuntu, or Fedora.