我有一个厨师食谱,可以循环安装包:
pkgs.each do |pkg|
yum_package "tools" do
package_name pkg
action :install
end
end
然而,这个食谱会引发以下错误:
[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'
最终,this feature is going to be removed。所以,我需要找到一种方法来正确地循环一个厨师食谱而不抛出这个警告;到目前为止,我没有运气试图解决这个问题;我想知道是否有其他人有解决方案?
答案 0 :(得分:9)
package_name
是名称属性。就这样做:
ops_pkgs.each do |pkg|
yum_package pkg
end
您甚至不需要阻止,因为action :install
是默认操作。
答案 1 :(得分:4)
我使循环中的资源独一无二,以解决问题:
ops_pkgs.each do |pkg|
yum_package "tools #{pkg}" do
package_name pkg
action :install
end
end
答案 2 :(得分:0)
老问题我知道,但我想至少得到一些专家的意见。也许这是一个更好的解决方案,使用食谱,承认你可能做希望它克隆和合并,而不是发出警告:
http://scottwb.com/blog/2014/01/24/defeating-the-infamous-chef-3694-warning/
这仅适用于该操作,但可以扩展到其他操作。