2009-12-24 78 views
1

編輯:改寫問題在capify中運行另一個任務並指定主機

說你有兩個任務。第一個動態地確定主機名,並且只想在該主機上調用第二個類。

task :first_task do 
    host_name = ... 
    second_task, :hosts => hostname 
end 

task :second_task do 
    run "some stuff" 
end 

據我可以告訴路過:主機不工作。將新的host_name分配給一個角色,並讓第二個任務使用這些角色可以工作,但這對現有任務不起作用。這似乎是可能的,因爲默認的deploy:setup在傳遞HOSTS變量時起作用,但我無法弄清楚它是如何工作的。

+0

你定義自己的任務,那麼你將要澄清的是什麼你有麻煩與。 – 2009-12-25 02:00:09

+0

在我自己的任務中,我怎麼稱呼另一項上限任務? – phillee 2009-12-25 06:55:38

回答

0

如果你仔細觀察,傳遞HOSTS變量是ENV ['HOSTS']。

+0

我想知道的是,如果ENV ['HOSTS']然後將一些參數傳遞給任務本身。我寧願傳遞參數,然後設置一個ENV變量。 – phillee 2009-12-25 19:21:44

1

嗯,有點晚了它重要,但......你可以嘗試:

task :first_task do 
    host_name = ... 
    set :hosts, host_name 
    second_task 
end 

task :second_task do 
    run "some stuff", :hosts => fetch(:hosts) 
end 
相關問題