Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've been looking online for what practices people are using when scaling their site using chef/capistrano and have not found much procedural information on this so thought I would ask here.

We are using chef in a limited way across our servers and we are using capistrano to deploy. For various reasons we will not be using the chef deploy resource to deploy for our app. We will be using chef to bootstrap app servers to scale our website.

From what I can gather what I would do is bootstrap the node with an app server role, then following the run, cap deploy. This will be done with ruby and the fog gem with some custom scripts.

cap production deploy

My questions are:

  1. What are some common approaches other people are using when scaling their site and deploying - outside of using chef to deploy
  2. Is host filter the best way to accomplish this?
  3. Should I be redeploying to all nodes when scaling instead of just single node?

Any other gotchas/etc appreciated.

share|improve this question

You can use capistrano-chef, a RubyGem that allows you to use Chef Search for role names to do the deployment.

Possibly unrelated, Evan Machnic has a video of how he uses Chef and capistrano from a presentation at a Ruby Brigade meeting.

You can also do a deployment as a resource inside Chef recipes.

Someone blogged about this here:

share|improve this answer
while switching to chef and a deploy resource may be an option I am looking for capistrano specific options and answers to the questions above. – pablo Dec 11 '11 at 19:24

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.