我有一个更新文件的Capistrano 2任务
task :update_file, roles: :app do
...
end
现在我需要编写一个任务,对文件夹中的所有文件执行某些操作,以便从update_folder
内部{i}我想调用update_file
传递给它的名称文件要更新,但我很难这样做。
如何设置Capistrano任务以接受参数并从其他任务中调用它?
由于
答案 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值=""
然后你可以在不同的任务之间使用这个变量