Cheffin ain’t EZ for beginners

When I first set out to learn Chef I found that most of the blog posts, tutorials and even the Opscode Help pages themselves were a bit difficult to understand, to say the least. The ontology surrounding Chef is pretty hard to grasp for beginners: Resources, Clients, Nodes, knife, chef, Chef Server, Shef, Cookbooks, Recipes and so on. What I really needed when I started out was a specific walk-through of anything so long as it worked. And a lot of stuff doesn’t.

UPDATE: The promised first tutorial is over at Camel Punch

It’s very unfortunate that some of the cool, Opscode-recommended stuff doesn’t work so great just yet. For example, knife ec2 server create almost always hangs right after the instance is started. Oh, and we have the perennial Ruby open source project problem: everything written about a hot new open source project must be treated with suspicion, because the APIs are in flux, and the information could be out of date.

I have run into the latter problem a lot. Chef 0.8 came with its own EC2 AMIs, whereas the recommended approach for 0.9 is to go from a plain distro-supplied AMI, because knife can bootstrap a Chef client installation. UPDATE: Bryan Hale at Opscode informs me that this is no longer the case. Opscode provide AMIs for the US, but everyone else must roll their own. I did, so if you happen to need a 32-bit Ubuntu Lucid Chef 0.9.8 AMI for eu-west-1, you can use ami-0882a87c

Opscode are very responsive when approached by email, but I get a feeling their website support is dragging behind a little. For example, this complaint about the Knife docs hasn’t yet been addressed. I ran into the problem, too!

Another minor gripe I have is with the licensing: I need to sign an agreement before I can fix your documentation? Really?

With all this said, I’ve managed to get a pretty cool cookbook together that sets up CruiseControl.rb on a fresh Ubuntu server with Passenger running on Ruby Enterprise Edition. The cool part is that it uses Octopi to query a Github account and sticks all of a user’s pushable repos into CruiseControl. I promise the next post will be an easy-to-follow tutorial. Enough complaining!

2 thoughts on “Cheffin ain’t EZ for beginners”

  1. You can work on the wiki documentation without a CLA – if you are going to patch Chef, then yeah, we need you to sign a CLA. The long winded version is linked here, but the short story is that it makes sure everyone is free to do whatever they would like with Chef.

    We’re working on making the documentation better, and on getting some clearer tutorials together. Thanks for the feedback – we appreciate it. If nobody told us how we suck, we wouldn’t be able to make things better. :)


Comments are closed.