Running the Show: Configuration Management with Chef
Running the Show_ Configuration Management with Chef Presentation 1 [ZIP]
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
People planning to attend this session also want to see:
Edd Dumbill
O'Reilly Media, Inc.
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.














Comments
I was expecting more real-world examples. This was much more of a high level presentation than it was a tutorial.
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.
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.
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.
Wish the networking based code worked earlier, of course, but it was informative.
I just added the example code from the slides to the ZIP file available at the top of this page.
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)
@Gavin
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!
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.
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?
@Brian, that’s a great idea. I’ll do that.
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.
@Jonathan
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.
Hi Edd,
I’ve been following Ezra’s chef-deploy on github (github.com/ezmobius/chef-de...) 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?
@Björn
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.
@Björn
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.
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?
@Derek
Yes, chef-deploy is moving quickly and we’ll be deploying a sample Rails app using it!
@Robert
Yes, I will be covering use of EC2.
I’d like to see some chef-deploy
Hope you will be showing how to use Chef to deploy to Amazon EC2