Thursday, July 22, 2010

First impression of Puppet

So I've been using cfengine since around 2001, with much success. It's been a huge part of why my career in web operations has been successful, as a matter of fact. There have been a number of things lacking in cfengine 2.x, much of which seems to be addressed in version 3.x, but I'm not sure that I should just blindly charge forward with a migration to cfengine 3.

With that in mind, I've decided to try out a couple alternatives - beginning with puppet.

Thursday morning I was at work at 8, and nobody else really shows up until 9, so I figured I'd see if this old SA can get up and running with puppet in under an hour on Debian Lenny. Here's how it went:

8 am: looking at puppet downloads page, wondering if I should see how hard it is to build from source, quickly decide against it.

9 am: using apt I have puppet and puppetmaster and all dependencies installed, running, with sample config fixed to avoid "Cannot access mount[plugins]" error, and sudo file perms set to be fixed automatically. Cert for puppet client signed, and finding how cool it is to have a human readable cached config stored at /var/lib/puppet/state/localconfig.yaml. The "Introduction to Puppet" page was helpful.

Then I was off to a meeting.

11 am: out of meeting. Decide to walk all the way through "Getting Started with a Simple Puppet Pattern" and "A More Advanced Puppet Pattern" so that my configs are setup in a sane way. I'm rather impressed by these docs, they're useful, concise, and correct.

By lunch, I have a centrally managed sudoers file being pulled via a "sudo" module from the puppet fileserver.

My initial impression of Puppet is favorable. The idea behind modules and being able to split it all out for sharing is a good one. The human readable cache is nice. I still have a lot to learn about using it, but so far the single best thing is that the docs are very beginner-friendly.

I'm going to take this further and figure out how to make sure a Debian package is installed, and have Puppet install it when missing. Wish me luck!

1 comment:

  1. We've launched a new product based on Puppet that might be of interest - DevStruture. We're looking for beta testers if you'd like to take it for a spin?

    ReplyDelete