5 comments

[ 3.1 ms ] story [ 35.3 ms ] thread
I honestly want a good excuse to use chef for a server config. Something like a series of rackspace nodes or the like.

I'm interested to hear about how long it took to get up to speed with making reasonably simple nodes come up in a fully automated fashion with chef.

I started out with chef a few weeks ago, but found I was writing too much complicated code for simple things. I changed to puppet and its more constrained DSL has really helped me describe my intents in a simple and efficient manner.
I use chef for about 10-15 slicehost nodes at work (in production for about 3 months now). It's worked well thus far but requires writing some bootstrap scripts for installing chef on a fresh instance and a fair amount of diving into the DSL (and sparse areas of documentation) depending on your needs.

I also developed all my recipes from scratch (didn't use any of the preset opscode stuff, though those are great examples of what can be done and very useful for standard installations of things). I haven't worked with the new recipes mentioned either, but it looks like chef is beginning to grow into some of the potential created by some of the recent infrastructure enhancements.

The whole ordeal probably took about two weeks of learning, tuning, and testing, but it could be MUCH quicker for more standard and homogenous server stacks - you can start with recipes used by Engine Yard and 37signals, for example.

Hi!

Actually in an upcoming release of Chef, you'll be able to do exactly that - manage Rackspace cloud nodes with the knife command-line tool. What that means is, you can launch new RS Cloud servers with knife, passing in the validation certificate and a run_list of recipes.

For EC2, Opscode provides a reference AMI with Chef pre-installed on Ubuntu 9.10 with a special configuration file that can parse EC2 metadata through Ohai to automatically validate and run a set of recipes. See:

http://wiki.opscode.com/display/chef/Amazon+EC2+AMIs+and+Che...

One of Chef's benefits for managing a dynamic environments is the Search Index feature, which can be used to search for other nodes that have particular roles or attributes set. That is part of what the application cookbook does to dynamically deploy and connect with other systems running services like memcached or mysql.

As for the learning curve and getting up to speed, that varies by person.

Sincerely, Joshua Timberman - Opscode, Inc.

If you're new to that area then I'd suggest to start out with puppet instead. It has the cleaner architecture and better documentation.