問題タブ [chef-attributes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
chef-infra - ノードの属性を Chef でオーバーライドするにはどうすればよいですか?
Chef 環境がセットアップされました。ノード属性が役割と環境によって適切にオーバーライドされているため、デプロイは正常に機能します。
今後の変更をテストするために、展開内の特定のノードの設定を変更したいと考えています。実際には設定が 1 つだけ異なるため、そのテスト用に別のレシピ、ロール、または環境を記述したくありません。
Chef Manage の Web UI を介して試し、特定のノードの属性を次のように設定しました。
私たちのクックブックでattributes/default.rb
は、次のように設定されています。
環境ファイルでは、次のように設定をオーバーライドします。
.erb
レシピ内で次のテンプレートを使用します。
ただし、そのノードでchef-clientを実行すると、依然としてhttp://default-server
出力に含まれます。
docs で説明されているように、属性の優先順位を理解しています。しかし、私が望むものを達成する方法がわかりません。
環境ファイルで使用しないことになっていますか?override_attributes()
ノード固有のオーバーライド属性を持つ方法はありますか?
chef-infra - Chef : 別の属性の値を持つ属性を定義します
私の環境ファイルでは、次のような属性を定義しました
['アプリ']['ウェブ'] = 'nginx'
そして別の環境ファイルで
['アプリ']['ウェブ'] = 'アパッチ'
私の意図は、どのような環境でも実行できるレシピを作成することです。レシピ内で、1 つの属性を定義しています。したがって、最初の環境でこのレシピを実行しているときに、node.default['cluster'] ['nginx'] ['endpoint'] を定義し、2 番目の環境では node.default['cluster'] ['apache'にする必要があります。 ] ['エンドポイント']
私は以下を使用しました
node.default['cluster'] [node['app']['web']] ['endpoint']
しかし、これは機能していません。これを達成する方法はありますか?