Is Capistrano or Puppet capable of this?

As far as I know they can. Take note that puppet is ruby too. And so is chef.

I guess it is a matter of personal taste, have a look at the way to define 'recipes' and decide which would better suite you.

You can also look at these other questions.

This answer says it all :). If you have a git repository already, maybe capistrano is a better choisce.

Check out these articles about the differences on goals and features of both puppet and capistrano and how to decide between the two.


Puppet would be ideal for this. Puppet provides you with a declarative language to describe the configuration of each server, including packages, services and configuration files. Puppet provides a strong framework to describe the dependancies that each component has on each other, which allows your to build modular configuration files that describe how to take a base image and turn it into a server ready to handle a particular role.