Capistrano: Deploying Ruby on Rails Applications to Multiple Servers

by Charles Max Wood on June 24, 2011

For a basic deployment recipe, check out Basic Deployment with Capistrano

This episode demonstrates how to extend deployment to deploy to stage and production. Overall it’s rather simple. All it entails is creating a new task for each stage you want to deploy to with the settings you need changed.

Here’s an example:

task :stage do
role :web, “stage.teachmetocodeacademy.com” # Your HTTP server, Apache/etc
role :app, “stage.teachmetocodeacademy.com” # This may be the same as your `Web` server
role :db, “stage.teachmetocodeacademy.com”, :primary => true # This is where Rails migrations will run

set :deploy_to, ‘/var/www/stage-teachmetocodeacademy/’
set :user, ‘deploy’
end

That will allow you to run `cap stage deploy` to deploy to your staging environment.

 

Download 55.3 MB
Download (iPod & iPhone) 35.1 MB

  • http://www.solidcoresolutions.com Eric Berry

    This is also possible with the capistrano-ext gem. View https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension

    • http://teachmetocode.com Charles Max Wood

      Thanks Eric. I didn’t realize that they had picked up maintenance of that gem again. It hadn’t been maintained last time I needed it.

  • Wxianfeng

    Great

Previous post:

Next post: