1

我有一个简化的 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),它会“正确”完成所有操作。

我有什么问题吗?

4

1 回答 1

0

这解决了我的问题如何使用 Capistrano 部署到单个特定服务器

于 2012-10-31T15:05:07.117 回答