2012-08-24 10 views
0

我有一個應用程序服務器和另一個elasticsearch。默認情況下,是否有設置所有Capistrano任務的except => {:no_release => true}的方法?

我設置一個搜索的作用如下:

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

我有3個不同的階段 - 督促,舞臺,實驗

我希望所有commmands到應用服務器上運行,除了一對夫婦的elasticsearch服務器。

看來我必須在我的所有任務上添加:except => { :no_release => true }才能獲得此功能。

是否有替代方案?

回答

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 
相關問題