Configuration management engines (CME) have increased in popularity over the past several years. When I evaluated all the potential options, I needed one to be free in cost, work on Mac and Windows, and be easy to set up and use. At the time, only Chef, CFEngine, and Puppet had Windows clients so I tested them all out. Puppet came the victor for several reasons:
The open source version had a windows client. Chef’ and CFEngine’s windows client was available if you paid. There is nothing wrong with this approach, but if your main goal was to run it on Windows workstations (not servers), $120/seat seemed too much.
Puppet code was easy to read – especially for a beginner. Whereas others could mix in other languages in their declaration manifests. This made me feel like there wasn’t a clear standard on how to write code for that platform. I tend to stay away from projects where anyone can do anything.
I was given a free book on Puppet and it was easy to read. Simple to read and understand means someone else with limited knowledge in technology would be able to read and understand it. This also makes it easier for that person to pick up where I leave off.
With Puppet, clients call home (even when out of network) instead of having to wait for them to be on network to receive updates.
These few reasons made me invest my time and effort into a Puppet infrastructure. I have it on my workstations and servers. If only I had switches that supported Puppet.