Capistrano: запуск cap deploy: install ROLES = role1 запускает ВСЕ задачи на сервере role1

У меня есть настройка развертывания 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), он все делает «правильно».

Я что-то не так понимаю?


person Niels Kristian    schedule 13.09.2012    source источник


Ответы (1)


Это решило мою проблему Как развернуть на одном конкретном сервере используя Capistrano

person Niels Kristian    schedule 31.10.2012