У меня есть настройка развертывания capistrano, которая в упрощенном виде выглядит примерно так:
server "server_ip1", :role1
server "server_ip2", :role2
И пара задач
namespace :postgresql do
desc "Install necessary ubuntu packages"
task :install, roles: [:role2] do
run "#{sudo} apt-get -y install postgresql libpq-dev"
end
after "deploy:install", "postgresql:install"
end
namespace :app_install do
desc "Install necessary ubuntu packages"
task :install, roles: [:role1, :role2] do
run "#{sudo} apt-get -y install imagemagick"
end
after "deploy:install", "app_install:install"
end
Теперь проблема в том, что если я запускаю cap deploy:install ROLES=role1
, он правильно выполняет задачи на server_ip1, НО он запускает ОБЕИ задачи app_install: install И postgresql: install
И что самое забавное, если я запускаю cap deploy:install
(без ROLES = role1), он все делает «правильно».
Я что-то не так понимаю?