在capify中运行另一个任务并指定主机
问题描述:
编辑:改写问题在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变量时起作用,但我无法弄清楚它是如何工作的。
答
如果你仔细观察,传递HOSTS变量是ENV ['HOSTS']。
+0
我想知道的是,如果ENV ['HOSTS']然后将一些参数传递给任务本身。我宁愿传递参数,然后设置一个ENV变量。 – phillee 2009-12-25 19:21:44
答
嗯,有点晚了它重要,但......你可以尝试:
task :first_task do
host_name = ...
set :hosts, host_name
second_task
end
task :second_task do
run "some stuff", :hosts => fetch(:hosts)
end
你定义自己的任务,那么你将要澄清的是什么你有麻烦与。 – 2009-12-25 02:00:09
在我自己的任务中,我怎么称呼另一项上限任务? – phillee 2009-12-25 06:55:38