開発、QA、PRODなど、各環境に固有の属性を指定するためにChefの環境を使用する方法についていくつかのアイデア/ガイドラインを探しています。
したがって、私たちはすべての環境で同じコマンドを使用できるようにしたいのですが、これらのプロパティを介していくつかの環境固有の変数を渡します。
このシナリオに触れた人はいますか?ありがとうございます!
ベストアンサー1
これは複数の環境で同じレシピを使用しますが、環境に応じて異なる変数を渡す方法です!
1. 次の内容でenv.rbを作成し、Knifeコマンドでアップロードします。
name "dev"
description "This is for Development Environment"
cookbook "cookbook1", "= 0.1.0"
default_attributes "dev" => { "proxy-server" => "proxydev.internal.com" }
2. プロパティを呼び出して変数に渡すレシピを作成します。
ruby_block "configure proxy" do
block do
file = Chef::Util::FileEdit.new "/tmp/proxy/server"
file.insert_line_if_no_match "^proxy", "proxy: #{node["#{dev}"]["proxy-server"]}"
file.write_file
end
end
3. 次に、この「dev」環境を使用してノードを起動し、上記のレシピを実行リストに含めます。
結果:最後に、ノードの「/tmp/proxy/server」ファイルには、次のエントリが含まれている必要があります。
proxy: proxydev.internal.com
これは私たちにとって効果的です!