massの日記

日々の薪

Capistranoのdeploy.rbを今更よんでみて、タスクの挙動をまとめてみた(その1)

最近はデプロイもツールを使って一発になったけど、タスクの挙動をよく忘れてしまうので、備忘録をつけてみた。

フレームワーク:RubyOnRails
  バージョン:3.1.0
デプロイツール:Capistrano
  バージョン:2.9.0

書き方の例

$ 実際に打つコマンド
# 内部処理


稼働しているサービスにリリース作業=デプロイを行う。
deployのDefaultのタスクはソースの更新と再起動。起動していることが前提。

$ cap deploy
# update
# restart

新規に追加したサーバに初期ディレクトリを作成する。
Capistrano用のディレクトリの作成。既存のサーバには影響がない(既にディレクトリが存在する場合はなにもしない)ので、新規にアプリケーションサーバを1台追加した時などは、まずこのコマンドをたたく。

$ cap deploy:setup
# setup_directory

再起動をしないでデプロイだけする。
ソースの更新とcurrentディレクトリのシンボリックリンクの向け先の変更。ただし再起動はしない。

$ cap deploy:update
# update_code
# symlink

以下は個別ではおそらく使わないだろうタスク。

ソースファイルの配布のみ
設定したSCMのリポジトリからソースコードの取得、最新ディレクトリの作成までを行う。失敗した時のrollback処理は、作成した最新ディレクトリの削除。

$ cap deploy:update_code
# rollback処理の準備
# deploy
# finalize_update


現在のタイムスタンプをもとに最新ディレクトリを作成、sharedのlog,system.pidsのディレクトリにシンボリックリンクを張る。

$ cap deploy:finalize_update
# ディレクトリのクリーン&作成
# シンボリックリンクの作成


カレントディレクトリから最新ディレクトリにシンボリックリンクをはる。

$ cap deploy:symlink
# シンボリックリンクの作成

緊急用?
一部のファイルだけあげたいといった場合に使う。結構緊急で使いそうかつ、ファイルの指定方法とか忘れそうなので、コマンドもメモ。

$ cap deploy:upload
#ex $ cap deploy:upload FILES=templates,controller.rb 
#ex $ cap deploy:upload FILES='config/apache/*.conf'

自分で設定するもの
ここは特になにも記載されていない。各自の環境にあわせて起動、再起動、停止処理を自分で作成したdeploy.rbに記載する。

$ cap deploy:start
$ cap deploy:restart
$ cap deploy:stop

とりあえず、ここまで。deploy.rbの半分くらいまでしかまだ読んでいない。続きは明日かな。