Glad You're Ready. Let's Get Started!

Let us know how we can contact you.

Thank you!

We'll respond shortly.

  • Blog Navigation
Chef-solo is great. You might not need client/server.

You should be doing automated configuration, period. Chef is a great automated configuration tool.

It has to be said, however, that chef has lots of parts, arguably an excess. If you google around for chef intros you see chef-solo referenced as a simple first step into “full” or “real” chef – chef client/server.

On our project we’ve built a mature web application, we’ve been using chef for over a year, and have never once felt the need for the client/server model, and we have no reason to expect to.

Here’s how we run chef manually:

cd ~/projectroot
git pull

(that’s it) contains:

sudo sh -c "RAILS_ENV=$RAILS_ENV chef-solo -c chef/config/solo.rb -j chef/config/$RAILS_ENV/`hostname -s`.json"

We have capistrano (multi-server ssh tool) do the equivalent on deploy:

sudo [
  "cd #{app_root}",
  "export RAILS_ENV=#{self.variables[:rails_env]}",
].join(" && ")

We deploy our code and update system config at the same time.

And that’s all we need or want.


  • I’ve heard good things about Chef-solo, but I’ve been having a really good time working with Sprinkle for the last year or so. It’s worth a look!

  • Alex Sharp

    Very useful stuff. So you’re using chef-solo to do multi-server deployments? Did the client/server model just feel too heavy for your purposes?

Share This