使用来自其他任务的参数调用Capistrano任务

时间:2014-03-19 06:48:27

标签: capistrano

我有一个更新文件的Capistrano 2任务

task :update_file, roles: :app do
 ...
end

现在我需要编写一个任务,对文件夹中的所有文件执行某些操作,以便从update_folder内部{i}我想调用update_file传递给它的名称文件要更新,但我很难这样做。

如何设置Capistrano任务以接受参数并从其他任务中调用它?

由于

1 个答案:

答案 0 :(得分:0)

你可以这样做:

$gkey=""
$gvalue=""


desc "generate config files"
task :gen_conf_files do
     $servers.each do |key,value|
      $MYSQL["mysql"]["passwd"]="#{key.to_s}++"
      $gkey=key.to_s
      $gvalue=value.to_s
      $NODE_NAME="#{key.to_s}"
      $NODE_NUM=key.to_s[9,10]



      gen_mfs_conf
      gen_cfs_conf
      gen_client_conf
      gen_config_shell
      gen_cdn_reacheyes_net
      gen_click_reacheyes_net
      gen_log_reacheyes_net
      gen_fluent_conf
      gen_nagios_conf


     end

    end

desc "genrate fluent config file"
task :gen_fluent_conf do
        file = "#{generate_conf_dir}/#{$gvalue}/fluent.conf"
        filename ="#{config_file_path}/fluent.conf.sample"
        erb = ERB.new(File.read(filename))
        erb.filename = filename
        File = File.new("#{file}", "w")
        File.puts erb.result


    end

首先定义一个全局变量 $ g值=""

然后你可以在不同的任务之间使用这个变量