For several years I’ve managed to bend cfEngine 2.0′s architecture to my will. Being an experienced Perl programmer, I was able to abuse the configuration language snytax in order to accomplish a number of strange things including Copy Back and automated management of OSSEC-HIDS. However, there comes a point when the managing the cfengine configs becomes a burdensome and incredibly unmanageable. I mean, sure, I know what they do. How will any of my co-workers understand them?
After several colleagues recommending Puppet, I hesitantly began the slow, brain fscking process of:
- Understanding exactly what I had accomplished with cfEngine.
- Understanding Ruby (ugh, I’m so thankful for Perl)
- Understanding how to express my cfengine feelings in a way Puppet will understand without hurting it’s feelings
- …
- Profit.










