O'Reilly logo

Professional Ruby on Rails™ by Noel Rappin

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

12.1. Capistrano

Deployment has always been a uniquely stressful period in the web development cycle. On most projects, it requires an elaborate protocol of copying files, restarting web servers, shutting down databases, possibly migrating data, restarting databases, and possibly rebooting machines. (Crossing your fingers is optional.) Often the process is mediated by a checklist, or by the memory of the developer who has been with the project the longest. It's time-consuming and error prone at exactly the time you most want to move quickly and accurately. If you are in a cycle where you are deploying frequently, then the time and effort quickly becomes a drag on the development process in general.

Capistrano aims to change all that by automating deployment tasks in much the same way that Rake automates build tasks. Capistrano assumes a particular structure for your development and deployment environments, but within that structure it's amazingly helpful at managing the copy and restart dance. It's especially helpful as your deployment moves to multiple servers — Capistrano enables you to make the same changes on all your servers with a single command.

12.1.1. Starting with Capistrano

Capistrano is distributed as a Rubygem, so naturally, you install it as follows:

$ sudo gem install capistrano

As of this writing, the current version is 2.1.0.

Capistrano requires you to have done some design and preparation of your deployment environment before you can use it. In particular, you ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required