如何在循环中停止资源克隆以获取厨师食谱?

5 ruby chef-infra chef-recipe

我有一个厨师食谱,可以在一个循环中安装包:

pkgs.each do |pkg|
  yum_package "tools" do
    package_name pkg
    action :install
  end
end
Run Code Online (Sandbox Code Playgroud)

但是这个方法会引发以下错误:

[2014-05-22T08:26:13-04:00] WARN: Cloning resource attributes for yum_package[tools] from prior resource (CHEF-3694)
[2014-05-22T08:26:13-04:00] WARN: Previous yum_package[tools]: /var/chef/cache/cookbooks/tools/recipes/default.rb:9:in `block in from_file'
Run Code Online (Sandbox Code Playgroud)

最终,此功能将被删除.所以,我需要找到一种方法来正确地循环一个厨师食谱而不抛出这个警告; 到目前为止,我没有运气试图解决这个问题; 我想知道是否有其他人有解决方案?

set*_*rgo 11

package_name name属性.这样做:

ops_pkgs.each do |pkg|
  yum_package pkg
end
Run Code Online (Sandbox Code Playgroud)

您甚至不需要阻止因为action :install是默认操作.


小智 4

我将循环中的资源设置为唯一以解决该问题:

ops_pkgs.each do |pkg|
  yum_package "tools #{pkg}" do
    package_name pkg
    action :install
  end
end
Run Code Online (Sandbox Code Playgroud)