在capify中运行另一个任务并指定主机

时间:2009-12-24 23:52:41

标签: amazon-ec2 capistrano

编辑:改述问题

假设您有两项任务。第一个动态确定主机名,并且只想在该主机上调用第二个类。

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

task :second_task do
  run "some stuff"
end

据我所知传入:主机不起作用。将新host_name分配给角色,让第二个任务使用这些角色会起作用,但这对现有任务不起作用。这似乎可以作为默认部署:setup在传入HOSTS变量时工作,但我无法弄清楚它是如何工作的。

2 个答案:

答案 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']。