从生成的列表中删除Chef中的包

时间:2017-11-08 16:00:00

标签: chef chef-recipe

我正在尝试在厨师运行期间生成一个包列表并将其删除。

我尝试使用ruby块来设置run_state变量。变量最终为空。我还尝试在package基于this question添加延迟评估,但这导致了编译错误。我还考虑将列表放在一个文件中,但文档说支持使用包的文件名是不可用的。

是否有合理的方法从收敛时间变量中删除包列表?

1 个答案:

答案 0 :(得分:1)

这个怎么样:

ruby_block "somehow get the list of packages to remove" do
  block do
    node.run_state['remove_packages'] = %w( foo bar baz )
  end
end

package "remove the list of packages" do
  package_name lazy { node.run_state['remove_packages'] }
  action :remove
  only_if { node.run_state['remove_packages'] }
end

(用chef-apply测试13.5.3)