Amazon ec2 在capify中运行另一个任务并指定主机
编辑:重新表述问题 假设你有两个任务。第一个类动态地确定主机名,并且只想在该主机上调用第二个类Amazon ec2 在capify中运行另一个任务并指定主机,amazon-ec2,capistrano,Amazon Ec2,Capistrano,编辑:重新表述问题 假设你有两个任务。第一个类动态地确定主机名,并且只想在该主机上调用第二个类 task :first_task do host_name = ... second_task, :hosts => hostname end task :second_task do run "some stuff" end 据我所知,在过去:主机不工作。将新的主机名分配给角色,并让第二个任务使用这些角色会起作用,但这对现有任务不起作用。作为默认部署,这似乎是可能的:安装程序
task :first_task do
host_name = ...
second_task, :hosts => hostname
end
task :second_task do
run "some stuff"
end
据我所知,在过去:主机不工作。将新的主机名分配给角色,并让第二个任务使用这些角色会起作用,但这对现有任务不起作用。作为默认部署,这似乎是可能的:安装程序在传入HOSTS变量时工作,但我不知道它是如何工作的 如果仔细观察,传入一个HOSTS变量就是ENV['HOSTS']。如果仔细观察,传入一个HOSTS变量就是ENV['HOSTS']。好吧,这有点晚了,但是。。。你可以试试:
task :first_task do
host_name = ...
set :hosts, host_name
second_task
end
task :second_task do
run "some stuff", :hosts => fetch(:hosts)
end
嗯,这件事有点晚了,但是。。。你可以试试:
task :first_task do
host_name = ...
set :hosts, host_name
second_task
end
task :second_task do
run "some stuff", :hosts => fetch(:hosts)
end
您定义了自己的任务,因此您必须澄清您遇到的问题。在我自己的任务中,我如何称呼另一个cap任务?您定义了自己的任务,因此您必须澄清您遇到的问题。在我自己的任务中,我如何称呼另一个cap任务?我想知道的是,如果ENV['HOSTS']然后将一些参数传递给任务本身。我宁愿传递参数,然后设置一个ENV变量。我想知道的是ENV['HOSTS']是否会将一些参数传递给任务本身。我宁愿传递参数,然后设置一个ENV变量。