如何在菜谱中找到 Chef 环境?

Ste*_*ett 31 chef

仅当当前环境为“dev”时,我才想运行 cookbook_file 资源。这怎么表达?

文档表明:

在配方中,像这样的代码块会很有用:

qa_nodes = search(:node,"chef_environment:QA")      
qa_nodes.each do |qa_node|                          
    # Do useful specific to qa nodes only
end
Run Code Online (Sandbox Code Playgroud)

但我不确定那是我想要的——事实上它是一个循环似乎是错误的。

Tim*_*ter 47

查看节点上的 Chef_environment Ruby 属性(不是常规的 Chef 属性):

if node.chef_environment == "dev"
  # stuff
end
Run Code Online (Sandbox Code Playgroud)

  • 具体来说,chef_environment 是 Chef::Node 对象上的一个方法,它返回节点环境的值。它不是节点属性,因此不应混淆。 (7认同)
  • 太好了,这有效。所以我原来的问题的答案是添加 `only_if { node.chef_environment == "dev" }`。确认的。 (3认同)