sato.masaki

2013.04.08

Capistranoを使ったデプロイ

こんにちは。monipla for facebookを担当している佐藤(ま)です。
アライドでは「大佐」と呼ばれております。

今回は、Capistranoを使ったデプロイについて書きたいと思います。

まずCapistranoについてですが、Capistranoは「複数の環境に同じ処理を同時に実行させる」ためのツールで、これを利用することで複数環境へのデプロイなどを行うことができます。

では、インストールから簡単な動作確認を行っていきたいと思います。今回は、Gitサーバ上のプロジェクトをCapistranoを使って配布するというのをやっていきます。

◇利用する環境
・Gitサーバ
・デプロイサーバ
※Rubyが入っている必要があります。
・web(デプロイ先)サーバ

◇Capistranoインストール
・デプロイサーバへCapistranoをインストールします。

◇Capistranoのひな型作成
・適当な場所で以下のコマンドを実行し、Capfileとdeploy.rbファイルを作成します。

◇deploy.rb編集
まず試しに、デプロイサーバからwebサーバへコマンドを実行するタスクを作成し、Capistranoの動作確認をしてみます。deloy.rbを初期設定から以下のように書き換えます。

タスクを実行します。

lsコマンドが実行されました。

続いて、Git上のプロジェクトをwebサーバへデプロイするための設定を行います。先程の設定へデプロイ情報を追加します。タスクはデフォルトを利用するので今回は記載しません。

今度はデプロイ先サーバへデプロイが行われるので、一度setupにて初期化を行ったのちdeployコマンドを実行します。実行するとデフォルトのdeployタスクが実行されます。

デプロイ先を見てみると以下のような構成となっており、「current」内が最新のソースとなります。

↓current

ただ、このままだとpublicやtmp、.gitが存在しているので、今度はこれらが存在しないようタスクを追加してみます。またここでは合わせて「config.yml.prod」を「config.yml」へリネームする処理も入れています。

不要ファイルがなくなり「config.yml.prod」も「config.yml」へリネームされました。

また、Capistranoのタスクについてはこちらにて確認できます。