There’s a lot of configuration management tools, but here’s the most common that I encounter:
| Tool | Date | Boot | Initial Config | Change Mgmt | W | Dev Lang | Config Lang | Licence | OS |
|---|---|---|---|---|---|---|---|---|---|
| Redhat Anaconda/ Kickstart | 1994 | Y | Y | N | W | Python/C | kickstart.cfg/ Unix scripts | GPL2 | L |
| Cfengine 3 | 1993 | Y | Y | Y | W | C | cfengine | GPL3 | All |
| Puppet | 2005 | N | Y | Y | W | Ruby | Ruby | Apache 2.0 | All |
| Chef | 2009 | N | Y | Y | W | Ruby | Recipe (Ruby DSL) | Apache 2.0 | L |
Interesting comments about using kickstart in EC2:
Maybe I'm missing something: why would you ever want an EC2 instance to
kickstart at boot time? You should create an image for every role you
care about and then boot the appropriate one for every instance you
need.
Roles change, updates happen frequently, and I'd rather a machine spin up with the
latest packages. I've always found that updating a pre-built machine is slower,
sometimes substantially so, than just building a fresh image with the newest RPMs.
Interview: Anaconda and Fedora 9 Developers
Quick History Lesson of Puppet and Chef
Cradle-to-Grave System Automation with PXE, Kickstart, and cfengine
crash, bang, wallop, what a server (creating a kickstart+puppet solution from scratch)
Systemimager & puppet
wikipedia: Software configuration management
Tips and tricks for anaconda and kickstart
Capistrano