Выполните ресурс шеф-повара многократно с переменными

Рассмотрите следующий код:

node["cloudwatch"]["alarms"].each do |metric,keys|
  script_name = "/root/.cloudwatch/create_cloudwatch_alarm-#{metric}.sh"
  template script_name do
    source  "cloudwatch/create_cloudwatch_EC2_alarm.sh.erb"
    owner   "root"
    group   "root"
    mode    "0655"
    variables(
      :metric => metric,
      :description => keys["description"],
      :statistic => keys["statistic"],
      :comparison => keys["comparison"],
      :threshold => keys["threshold"],
      :evalperiods => keys["evalperiods"],
      :period => keys["period"]
    )   
    notifies :run, "bash[populate-create_alarms]", :immediately
  end 
  bash "populate-create_alarms" do
    user "root"
    cwd "/root/.cloudwatch/"
    code <<-EOH
      echo #{script_name} >> ./create_alarms.sh
      EOH
    action :nothing
  end 
end 

Это хорошо работает, но в журнале я несколько раз получаю соблюдающие предупреждения:

WARN: Cloning resource attributes for bash[populate-create_alarms] from prior resource (CHEF-3694)
WARN: Previous bash[populate-create_alarms]: /var/chef-solo/cookbooks/soapp/recipes/cloudwatch.rb:220:in `block in from_file'
WARN: Current  bash[populate-create_alarms]: /var/chef-solo/cookbooks/soapp/recipes/cloudwatch.rb:220:in `block in from_file'

Я понимаю, почему я получаю предупреждения, но я не знаю, как избежать их. Очевидно "populate-create_alarms" не должен быть в node["cloudwatch"]["alarms"].each блок, но я не знаю, как передать #{script_name} кому: "populate-create_alarms". Кто-либо показывает мне надлежащий способ сделать это?

0
задан 31 July 2014 в 07:33
1 ответ

Сделать имя ресурса bash уникальным, например, следующим кодом:

 bash "populate-create_alarms-#{metric}" do
   ..
 end
2
ответ дан 4 December 2019 в 13:58

Теги

Похожие вопросы