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

如何在菜谱中找到 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

但我不确定这是否是我想要的——事实上它是一个循环,这似乎不正确。

答案1

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

if node.chef_environment == "dev"
  # stuff
end

答案2

另一种优雅的方式:

if ['production','development'].include? node.chef_environment
    #do something here
end

相关内容