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

  • 我的.machine.json

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

它是真正的 Chef 节点吗?

是否满足以下优先级
我想如果我"key":"value"在节点、角色和环境中有“正常”,则应用以下优先级(覆盖)顺序:节点>角色>环境,但根据该文档,优先级是角色>环境>配方,配方在与节点相同的表格单元格。

4

1 回答 1

2

我们一直在慢慢修复 JSON 加载代码,使其不依赖于json_class自动膨胀位。据我所知chef_type,它从未实际使用过,但仍可能会被一些测试代码检查。

至于优先级问题:角色和环境可以包含默认和覆盖级别的属性。覆盖>正常>默认。一般来说,我们建议不要使用正常级别。它没有被弃用,但我们正朝着这个方向前进(非常缓慢,因为我们有多年的兼容性要考虑)。

于 2016-12-21T02:13:23.177 回答