31 votes

Comment trouver l'environnement du chef dans une recette ?

Je veux exécuter une ressource cookbook_file uniquement si l'environnement actuel est "dev". Comment cela peut-il être exprimé ?

La documentation le suggère :

Dans une recette, un bloc de code comme celui-ci serait utile :

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

Mais je ne suis pas sûr que ce soit ce que je veux - le fait qu'il s'agisse d'une boucle ne me semble pas correct.

47voto

Tim Potter Points 1754

Regardez dans l'attribut chef_environnement Ruby (pas un attribut Chef ordinaire) sur le nœud :

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

2voto

lapo Points 1471

D'une autre manière élégante :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X