web-dev-qa-db-ja.com

レシピで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

しかし、それが私が望むことかどうかはわかりません-ループであるという事実は間違っているようです。

30
Steve Bennett

ノードのchef_environment Ruby属性(通常のChef属性ではない))を確認します。

if node.chef_environment == "dev"
  # stuff
end
46
Tim Potter

別のエレガントな方法:

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