Я использую Capistrano для управления моим развертыванием, и у меня есть две разные роли в моей настройке -: web и: processing. Они оба имеют обычные задачи: deploy, но задача: restart должна отличаться для двух типов серверов.
Итак, моя первая попытка была примерно такой:
task :restart, :roles => :web do
run "... web related restart stuff ..."
end
task :restart, :roles => :processing do
run "... processing related restart stuff ..."
end
Что не работает, потому что второе: restart (для: роли обработки) заменяет первое: restart (для: веб-роли), а: web: restart никогда не происходит.
Я быстро огляделся, чтобы посмотреть, смогу ли я написать условный код в зависимости от того, в какой роли (или ролях) может находиться сервер, когда выполняется задача, но там нет документации для такого рода вещей. Есть идеи?