1

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()

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

4

1 に答える 1