Yak shaving logs


My life is just yak shaving.

Capistranoで複数のサーバーそれぞれにデプロイをする方法

2017/11/21 #rails #capistrano #デプロイ

By Yusuke Takita


こんにちは。Takitaです。

Capistranoを利用して複数サーバーにデプロイしている構成の場合に、それぞれのサーバーにデプロイする方法について調べました。

./config/deploy/#{environment}.rb を修正して、デプロイしたいサーバーだけにするという方法でもできるのですが、コマンドで解決できないかなと思って調べました。

Capistranoのロールフィルタリングという仕組みを使います。
(動作確認はしていませんが、ホストフィルタリングでも同様のことができます)

  • ./config/deploy/#{environment}.rb
server 'xx.xx.xx.xx', user: 'user', roles: %w[web web1]
server 'xx.xx.xx.xx', user: 'ubuntu', roles: %w[web web2]

上記のように web1 web2 とロールを付与することによって、以下のようなコマンドでそれぞれのサーバーに対してデプロイできます。

bundle exec cap #{environment} deploy -> web1, web2の両方にデプロイ
ROLES=web1 bundle exec cap #{environment} deploy -> web1だけにデプロイ
ROLES=web2 bundle exec cap #{environment} deploy -> web2だけデプロイ

参考

http://capistranorb.com/documentation/advanced-features/role-filtering/
http://capistranorb.com/documentation/advanced-features/host-filtering/
http://umisora2.hatenablog.com/entry/2016/02/02/201415

このエントリーをはてなブックマークに追加

categories


最新記事


tags