問題タブ [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.

0 投票する
1 に答える
2475 参照

chef-infra - ノードの属性を Chef でオーバーライドするにはどうすればよいですか?

Chef 環境がセットアップされました。ノード属性が役割と環境によって適切にオーバーライドされているため、デプロイは正常に機能します。

今後の変更をテストするために、展開内の特定のノードの設定を変更したいと考えています。実際には設定が 1 つだけ異なるため、そのテスト用に別のレシピ、ロール、または環境を記述したくありません。

Chef Manage の Web UI を介して試し、特定のノードの属性を次のように設定しました。

私たちのクックブックでattributes/default.rbは、次のように設定されています。

環境ファイルでは、次のように設定をオーバーライドします。

.erbレシピ内で次のテンプレートを使用します。

ただし、そのノードでchef-clientを実行すると、依然としてhttp://default-server出力に含まれます。

docs で説明されているように、属性の優先順位を理解しています。しかし、私が望むものを達成する方法がわかりません。

環境ファイルで使用しないことになっていますか?override_attributes()

ノード固有のオーバーライド属性を持つ方法はありますか?

0 投票する
2 に答える
144 参照

chef-infra - Chef : 別の属性の値を持つ属性を定義します

私の環境ファイルでは、次のような属性を定義しました

['アプリ']['ウェブ'] = 'nginx'

そして別の環境ファイルで

['アプリ']['ウェブ'] = 'アパッチ'

私の意図は、どのような環境でも実行できるレシピを作成することです。レシピ内で、1 つの属性を定義しています。したがって、最初の環境でこのレシピを実行しているときに、node.default['cluster'] ['nginx'] ['endpoint'] を定義し、2 番目の環境では node.default['cluster'] ['apache'にする必要があります。 ] ['エンドポイント']

私は以下を使用しました

node.default['cluster'] [node['app']['web']] ['endpoint']

しかし、これは機能していません。これを達成する方法はありますか?