特定のroleで実行。userendサーバが1つだけならroleは1つでよい。:userも指定しなくてもよい。ユーザ名は、roleのホスト名の前に@を付けて書くことができる。:userで指定したユーザ名がデフォルトになる。なければ現在のログインユーザ名がデフォルトになる。taskに:rolesを指定すると、特定のサーバだけ操作できる。setは変数を設定している。ようにブロックを設定して遅延評価できる。リモートの標準出力を受け取るstream機能がある。ログのtailを表示したりできる。https://github.com/capistrano/capistrano/wiki/2.x-DSL-Documentation-Action-Modulerunでコマンドを実行する以外にも、ファイルの送受信put、deleteなどができる。role以外にもいくつかある。https://github.com/capistrano/capistrano/wiki/2.x-Significant-Configuration-Variables付属のレシピが使っている変数。updateするもうちょっと複雑にする。updateを実行する例。実行前に読み込んでくれるようになる。これを使って、開発用サーバと本番用サーバの設定を切り替える。デフォルトのタスクを修正するCapistranoに付いているレシピを利用すると、もっと高度なデプロイ処理が実現できる。http://gist.github.com/374898ダウンロードして展開すると以下の階層ができる。Capfileconfig/deploy.rbdeploy/staging.rblive.rbstaging.rbとlive.rbは、multistage用。行でベースのレシピが読み込まれる。capistrano-2.5.18/lib/capistrano/recipes/deploy.rbこのソースを見ながらRailsに依存する部分を修正をした。デフォルトだと、deployタスクは下のように呼ばれる。deployネームスペースのデフォルトタスク。