编辑:改述问题
假设您有两项任务。第一个动态确定主机名,并且只想在该主机上调用第二个类。
task :first_task do
host_name = ...
second_task, :hosts => hostname
end
task :second_task do
run "some stuff"
end
据我所知传入:主机不起作用。将新host_name分配给角色,让第二个任务使用这些角色会起作用,但这对现有任务不起作用。这似乎可以作为默认部署:setup在传入HOSTS变量时工作,但我无法弄清楚它是如何工作的。
答案 0 :(得分: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
答案 1 :(得分:0)
如果你仔细观察,传入一个HOSTS变量是ENV ['HOSTS']。