Running the Show: Configuration Management with Chef

Location: Pavilion 2 - 3 Level:
Average rating: **...
(2.36, 45 ratings)

Few completed Rails apps are architecturally simple. As soon as you grow, you find yourself using multiple subsystems and machines to scale. Cloud-based environments such as EC2 make this an attractive and cost-efficient option, but create new headaches in configuration management.

Chef is the latest development in open source systems integration, a powerful Ruby-based framework for managing servers in a way that integrates tightly with your applications and infrastructure. As developers become increasingly responsible for operations, Chef lets you manage your servers by writing code, not running commands.

In this tutorial we cover:

  • Your first Chef cookbook
  • Chef concepts such as nodes, cookbooks and nodes
  • Anatomy of a cookbook
  • Storing and versioning your cookbooks
  • What happens when you run Chef
  • Using Chef’s Web UI
  • Configuring per-instance data using JSON
  • Lightweight configuration with Chef Solo
  • What comes for free: managing Apache, Ubuntu, MySQL and friends
  • Chef for Rails apps
  • Setting up your Rails environment
  • Deploying your application: Chef vs Capistrano
Photo of Edd Wilder-James

Edd Wilder-James


Edd Dumbill is co-chair of the O’Reilly Open Source Convention, and leads the design and implementation of conference software at O’Reilly.

Comments on this page are now closed.


Steve Newell
05/06/2009 3:39am PDT

I was expecting more real-world examples. This was much more of a high level presentation than it was a tutorial.

Adam ingram-goble
05/05/2009 8:02am PDT

There were bits of the presentation that were useful insights that I hadn’t had from the wiki tutorial, but I was hoping for a tutorial, not a presentation.

I think it should have been possible to provide VirtualBox based images of the hosts and had everyone try to run through a guided tutorial, and that might have given us a better experience.

Aaron Hawkins
05/05/2009 4:48am PDT

I enjoyed the presentation. I had heard of chef – but didn’t know anything more than it was a way to configure systems. I thought the talk did a good job of going over the features and explaining how to set things up.

I would have liked to see a bit more discussion about the practical usage scenarios after going through the fundamentals. What are people doing with it – what are some good practices, etc. Some direction in the how and why to back up the technical details would provide a good foundation going forward.

Don’t worry about the technical issues – they happen. The talk was still good.

Jonathan Hicks
05/05/2009 4:30am PDT

Network issues to begin with were distracting. The process of installing chef, configuring your cookbooks and applying them to your nodes was not clearer after the talk. That should have been addressed, end to end, in the tutorial.

Picture of Tony Hillerson
Tony Hillerson
05/04/2009 9:31am PDT

Wish the networking based code worked earlier, of course, but it was informative.

Picture of Edd Wilder-James
Edd Wilder-James
05/04/2009 9:11am PDT

I just added the example code from the slides to the ZIP file available at the top of this page.

Picture of Brian Hughes
Brian Hughes
05/04/2009 8:48am PDT

I would have given the session 2.5 stars, but that option wasn’t avail so I rounded up.

I thought the session had a lot of good info, I’m just not sure the way it was presented was the best way to get that info across to a room full of developers, who really didn’t seem to be on board with most of the sys-admin stuff @edd was trying to cover.

Chef goes pretty deep into server-level config stuff that most developers, even those that have “some” admin responsibility, never see.

It might have gone a lot better if after the warm-up slides, the presentation went right into the server web interface and the rails/chef-deploy stuff. Obv, since chef-deploy is so tenuous at the moment, that would have been tough, this time, but perhaps it’s a good thought for the future?

I think Chef has a lot of potential and chef-deploy looks like it could be a good replacement for those that want to leave capistrano behind (for whatever reasons). Hopefully, that will become more baked-in, so that it can be a more natural introduction into the depths of chef…

-Brian (aka. @Mac_Zealot)

Picture of Edd Wilder-James
Edd Wilder-James
05/04/2009 7:50am PDT


The technical difficulties with the VMs was unfortunately my own oversight that couldn’t really have been mitigated by a dry run. Live demos are risky, and I got bitten. Hopefully seeing everything run in the second half restored your faith.

The AV crew have had the feedback about the sound system, hopefully things can be improved during the week.

Thanks for coming!

Gavin Stark
05/04/2009 6:07am PDT

conference center wifi, speakers and lack of power was a disappointment in the first half. Organizers should do a bit more to ensure each presenter has what they need before they start. Dunno if conference allows tutorial or speakers a chance to “dry run” their technical presentations.

Stephen Anderson
05/04/2009 4:59am PDT

Excellent content! I really enjoyed learning about this tool and look forward to adding it to my toolkit. Poor sound. Too much reverb. Might have been better to just turn off the sound system & project loudly?

Picture of Edd Wilder-James
Edd Wilder-James
04/30/2009 8:53am PDT

@Brian, that’s a great idea. I’ll do that.

Picture of Brian Doll
Brian Doll
04/29/2009 9:21am PDT

I’m really looking forward to this tutorial!

The overview looks solid, and I’m getting the feeling that the various configuration and deploy options will be easier to understand and evaluate afterward.

You mentioned that you’ll be using two Ubuntu servers to demonstrate how these tools work together. Instead of attempting to run two VMs on my netbook (ha!), and to save others from trying to replicate that environment locally, I wonder if you could create an attendee login on both systems we could use to see how they are set up ourselves. This could be a login that has read-only permissions to the various configurations, but it may be easier to “follow along” if we’re looking at your systems via an ssh session, than trying to replicate that work locally.

Picture of Edd Wilder-James
Edd Wilder-James
04/29/2009 1:59am PDT


We’ll work through a working example of a chef-deploy setup. I can’t guarantee how deep and dirty we’ll get with it though, given the time constraints, and also the fact I’ve not yet had any production experience with chef-deploy.

Jonathan Hicks
04/29/2009 1:05am PDT

Hi Edd,

I’ve been following Ezra’s chef-deploy on github ( and would really like to get more familiar with some of it’s internals (callbacks, hooks, rollbacks, etc). Could you add some of these topics to your talk?

Picture of Edd Wilder-James
Edd Wilder-James
04/28/2009 9:01pm PDT


It’s also worth noting that the conference wifi is probably not up to many tutorial attendees using apt-get over the network at the same time! I’ll investigate if I can get some onsite local Ubuntu mirror going. If not, we’ll do the best we can. There’s a lot more to the tutorial than just package installation.

Picture of Edd Wilder-James
Edd Wilder-James
04/28/2009 8:57pm PDT


Just a plain OS will do. If you go for the Ubuntu server edition, you can hit F4 on installation and choose the minimal install.

The one thing you may wish to do to save time is get Ruby and Rubygems installed.

Björn Grossmann
04/28/2009 5:46pm PDT

Hello Edd, I am looking forward to the session!

You said that for those who want to follow along, its recommended to have some Ubuntu virtual machines running. Will we use Chef to install Apache/Nginx, Mongrel and MySql on them or should we have those packages installed beforehand?

Picture of Edd Wilder-James
Edd Wilder-James
04/28/2009 8:28am PDT


Yes, chef-deploy is moving quickly and we’ll be deploying a sample Rails app using it!

Picture of Edd Wilder-James
Edd Wilder-James
04/28/2009 8:27am PDT


Yes, I will be covering use of EC2.

Derek Kastner
04/28/2009 8:23am PDT

I’d like to see some chef-deploy

Picture of Robert Berger
Robert Berger
04/28/2009 8:12am PDT

Hope you will be showing how to use Chef to deploy to Amazon EC2

News and Coverage
co-presented by Ruby Central, Inc. O'Reilly
  • Engine Yard
  • Heroku
  • Sun Microsystems
  • Blue Box Group
  • New Relic

Sponsorship Opportunities

For information on exhibition and sponsorship opportunities at RailsConf, contact Yvonne Romaine at

Download the RailsConf Sponsor/Exhibitor Prospectus

Media Partner Opportunities

Download the Media & Promotional Partner Brochure (PDF) for information on trade opportunities with O'Reilly conferences or contact mediapartners@

Program Ideas

Post your suggestions for speakers, topics, and activities on the RailsConf wiki or send an email to

Press and Media

For media-related inquiries, contact Maureen Jennings at

Contact Us

View a complete list of RailsConf 2009 contacts.