1

Chef Server を使用するプロジェクトでは、次の概念を使用しています。

  • ノード
  • 役割
  • 環境

環境ロールのjson ファイルは正常に見えます (それらには と がchef_typeありますjson_class):

  • ENV.json

    {
        "name": "ENV",
        "chef_type": "environment",
        "json_class": "Chef::Environment",
        ...
        "cookbook_versions": {
            ...
        }
    }
    
  • my_role.json

    {
        "name": "my_role",
        "chef_type": "role",
        "json_class": "Chef::Role",
        ...
        "run_list": [
            "role[my_role]",
            "recipe[my_recipe]"
        ]
    }
    

しかし、ノードは次のようになります (いいえchef_type、いいえjson_class):

  • my.machine.json

    {
        "chef_environment": "ENV",
        "name": "my.machine",
        "normal": {
           "key": "val"
        },    
        "run_list": [
             "role[my_role]"
        ]
    }
    

それは本物のChefノードですか?

また、次の優先順位を満たしていますか? ノード、ロール、および環境に
「通常」がある場合、次の優先順位 (上書き) 順序が適用されると想定しました:ノード > ロール > 環境、しかしそのドキュメントによると、優先順位はロール > 環境 > レシピであり、レシピはノードと同じ表セル。"key":"value"

4

1 に答える 1

2

json_class自動インフレ ビットに依存しないように、JSON 読み込みコードをゆっくりと修正してきました。私の知る限り、chef_type実際に使用されたことはありませんが、一部のテスト コードによってチェックされる可能性があります。

優先順位の質問については、ロールと env には、デフォルト レベルとオーバーライド レベルの両方で属性を含めることができます。オーバーライド > 通常 > デフォルト。通常、通常レベルの使用はお勧めしません。廃止されたわけではありませんが、その方向に進んでいます (何年にもわたる互換性について考える必要があるため、非常にゆっくりとしています)。

于 2016-12-21T02:13:23.177 に答える