Como encontrar o ambiente do Chef em uma receita?

30

Eu quero executar um recurso cookbook_file somente se o ambiente atual for "dev". Como isso pode ser expresso?

A documentação sugere isso:

In a recipe, a code block like this would be useful:

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

Mas não tenho certeza de que é isso que quero - o fato de ser um loop parece errado.

    
por Steve Bennett 15.08.2012 / 08:12

2 respostas

43

Procure no atributo Ruby chef_environment (não um atributo regular do Chef) no nó:

if node.chef_environment == "dev"
  # stuff
end
    
por 15.08.2012 / 09:56
2

outra maneira elegante:

if ['production','development'].include? node.chef_environment
    #do something here
end
    
por 17.10.2016 / 14:11