Capistranoでアプリケーションのデプロイ作業を効率化

沖津貴智(moonlinxチーフエンジニア)
2009-07-06 20:12:01
  • このエントリーをはてなブックマークに追加
最新特集【一覧】

 本連載の第1回から第3回までは、主にmoonlinxのインフラ技術を説明してきました。今回からはmoonlinxのウェブアプリケーション技術に着目して解説していきたいと思います。

デプロイツール「Capistrano」の魅力

 ウェブメディア「moonlinx」では、moonlinx Membership Centerと呼ばれるクリエイター向けの登録制会員サービスを運営しています。これは、デザイナーや音楽活動を行うアーティストをターゲットとしたサービスであり、クリエイター自身の活動をプロモーションするツールとして活用できるサービスです。

 このMembership Centerでは、フレームワークとしてRuby on Railsを利用して開発しています。また、PhusionのPassengerを利用して、Apache2上で動作させています。

 Railsの運用環境は、MongrelとMongrel Clusterでの運用が最も主流と思われますが、Passengerでも現時点では全く問題なく運用できています。運用のしやすさで言えば、MongrelよりもPassengerのほうが圧倒的に楽なので、サービス運用者の方には是非お勧めしたいところです。

 アプリケーションを本番環境にデプロイするツールとしては、Capistranoを利用しています(昔はSwitchTowerと呼ばれていたようです)。Capistranoは、コマンド1行で複数環境にアプリケーションを配備できる、非常に便利なデプロイツールです。

 Railsは運用が難しいと言われがちですが、PassenderとCapistranoを有効活用することでそのハードルを下げることができます。今回は、そのデプロイツールであるCapistranoについて説明したいと思います。

Capistranoとは?

 Capistranoは複数サーバにアプリケーションを配備できるデプロイツールなのですが、厳密にいえば「複数のサーバ上で同時に並行してコマンドを実行できるツール」です。

 Capistranoを実行したマシンから、SSHを利用して複数サーバに対し、平行してコマンドを実行します。

 SubversionなどのSCMとも簡単に連携できるため、Subversionから最新ソースコードを取得し、そのままビルドからデプロイまでを実行できます。

Capistranoを利用するための条件

  • SSH接続が可能
  • SSH接続ユーザー名とパスワードは全てのサーバでそろえる

 それでは、Capistranoのインストールから説明したいと思います。

Capistranoのインストール

 CapistranoはRubyで記述されており、gemを利用してインストールします。また、Capistranoは、複数のサーバにインストールする必要はありません。Capistranoを実行するマシンにのみインストールします。

 今回、動作検証を行った環境は、

  • openSUSE 11.1
  • ruby 1.8.7
  • rubygems 1.3.1
  • Capistrano 2.4.3

 では、インストールしてみましょう。

$ gem install -y capistrano
$ cap -h

 capコマンドが実行でき、ヘルプが表示されればインストール完了です。

 次に、Railsアプリケーションのカレントディレクトリへ移動し、capifyコマンドを実行しましょう。

  • 新着記事
  • 特集
  • ブログ