2009-12-24 81 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 
相关问题