Capistrano3 がかなりシンプルになって使いやすくなったのでプロジェクトで使ってみました。うん。なかなかよさげです。
Capistrano2 にあった copy_via がなくなっていたので、デプロイ先のサーバから Git リポジトリにアクセスできるようにしないといけなかったりとちょっと面倒なこともありましたが概ね良好です。
Capistrano3 の導入はこの記事がオススメです。
Capistrano3 になって、独自DSLから Rake に変わりました。なので、コマンドも結構すっきりして書きやすくなりました。
サンプルプロジェクトで使った config/deploy.rb
の例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
|
タスクの実行時に指定できる sequence
、groups
、parallel
の説明はこちら。
Other modes for parallelism include:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19# Capistrano 3.0.x
on :all, in: :groups, max: 3, wait: 5 do
# Take all servers, in groups of three which execute in parallel
# wait five seconds between groups of servers.
# This is perfect for rolling restarts
end
on :all, in: :sequence, wait: 15 do
# This takes all servers, in sequence and waits 15 seconds between
# each server, this might be perfect if you are afraid about
# overloading a shared resource, or want to defer the asset compilation
# over your cluster owing to worries about load
end
on :all, in: :parallel do
# This will simply try and execute the commands contained within
# the block in parallel on all servers. This might be perfect for kicking
# off something like a Git checkout or similar.
end
Capistrano2 と互換性がないですが、新規プロジェクトには使えるんじゃないかと。