capistrano3 + wheneverでハマったメモ
ハマった内容としては、deployしてもcronがupdateされないという現象。
結論からいうと、サーバのroleの設定ミスだった。
wheneverのcapistranoプラグインはデフォルトでdbロールのサーバに対してcrontabへのupdateを行うのだけれど、
対象のサーバがdbロールを持っていなかったので実行されていないというだけだった。これ、ログにもでないので気づきにくい。
で、cronを実行するサーバにはbatchロールを付与することにした。
さておき、wheneverのcapistrano周りで足した記述をまとめると
Capfile
~snip~ require 'whenever/capistrano' # Loads custom tasks from `lib/capistrano/tasks' if you have any defined. Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }
deploy.rb
~snip~ set :whenever_identifier, ->{ "#{fetch(:application)}_#{fetch(:stage)}" } set :whenever_roles, ->{ :batch } ~snip~
deploy/staging.rb
~snip~ server 'ria10.example.com', user: 'ria10', roles: %w{web app batch} # batchを足した ~snip~
これだけ。
はぁ。2時間くらい使っちまった・・・。
- 作者: すがわらまさのり,前島真一,近藤宇智朗,橋立友宏
- 出版社/メーカー: 技術評論社
- 発売日: 2014/06/06
- メディア: 大型本
- この商品を含むブログ (8件) を見る