1

簡略化したcapistranoデプロイメントセットアップは次のようになります。

server "server_ip1", :role1
server "server_ip2", :role2

そして、2つのタスク

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=role1server_ip1でタスクを正しく実行すると、タスクapp_install:installとpostgresql:installの両方が実行されることです。

そして面白いのは、cap deploy:install(ROLES = role1なしで)実行すると、すべてが「正しく」実行されることです。

何か問題がありますか?

4

1 に答える 1

0

これで私の問題は解決しました。Capistranoを使用して単一の特定のサーバーにデプロイする方法

于 2012-10-31T15:05:07.117 に答える