有没有办法设置:except => {:no_release => true}默认情况下所有Capistrano任务?

时间:2012-08-24 13:49:44

标签: ruby capistrano

我有另一个app服务器和elasticsearch。

我按如下方式设置搜索角色:

role :search, 'search.server.com', :no_release => true

我有3个不同的阶段 - 刺激,阶段,实验

我希望所有的命令都能在app服务器上运行,但弹性搜索服务器上除了一对。

似乎我必须在我的所有任务上添加:except => { :no_release => true }才能获得此功能。

有替代方案吗?

1 个答案:

答案 0 :(得分:1)

您可以设置多个角色,并在需要的角色上指定no_release。 可以仅为指定的角色运行任务,例如:

role :search, "ex.com", :no_release => true
role :app, "ex.com"

task :run_for_both, :roles => [:app, :search] do
  run "echo 'my command'"
end

task :run_on_app, :roles => :app, :search do
  run "echo 'my command on app role'"
end