【问题标题】:Run another task within capify and specify host在 capify 中运行另一个任务并指定主机
【发布时间】:2009-12-24 23:52:41
【问题描述】:

编辑:改写问题

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

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

task :second_task do
  run "some stuff"
end

据我所知,传入 :hosts 不起作用。将新的 host_name 分配给一个角色,并让第二个任务使用这些角色会起作用,但这不适用于现有任务。这似乎是可能的,因为默认的 deploy:setup 可以传递 HOSTS 变量,但我不知道它是如何工作的。

【问题讨论】:

  • 您定义自己的任务,因此您必须弄清楚您遇到的问题是什么。
  • 在我自己的任务中,如何调用另一个上限任务?

标签: amazon-ec2 capistrano


【解决方案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

【讨论】:

    【解决方案2】:

    如果仔细观察,传入 HOSTS 变量是 ENV['HOSTS']。

    【讨论】:

    • 我想知道的是,如果 ENV['HOSTS'] 然后将一些参数传递给任务本身。我宁愿传递参数然后设置一个 ENV 变量。
    猜你喜欢
    • 2012-06-28
    • 2014-06-21
    • 1970-01-01
    • 2011-05-31
    • 2020-06-13
    • 2022-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多