Chef 環境がセットアップされました。ノード属性が役割と環境によって適切にオーバーライドされているため、デプロイは正常に機能します。
今後の変更をテストするために、展開内の特定のノードの設定を変更したいと考えています。実際には設定が 1 つだけ異なるため、そのテスト用に別のレシピ、ロール、または環境を記述したくありません。
Chef Manage の Web UI を介して試し、特定のノードの属性を次のように設定しました。
{
"tags": null,
"our_app":{
"url": "http://test-server"
}
}
私たちのクックブックでattributes/default.rb
は、次のように設定されています。
default[:our_app][:url] = ''
環境ファイルでは、次のように設定をオーバーライドします。
override_attributes({
"our_app" => {
"url" => "http://default-server",
}
})
.erb
レシピ内で次のテンプレートを使用します。
{
"serverUrl": "<%= node[:our_app][:url]%>"
}
ただし、そのノードでchef-clientを実行すると、依然としてhttp://default-server
出力に含まれます。
docs で説明されているように、属性の優先順位を理解しています。しかし、私が望むものを達成する方法がわかりません。
環境ファイルで使用しないことになっていますか?override_attributes()
ノード固有のオーバーライド属性を持つ方法はありますか?