我在Chef site中读到,环境中指定的默认属性优先于角色中指定的默认属性。这是有道理的,因为我们可能有不同的Web服务器用于开发,测试和生产。
但是在覆盖属性的情况下,这是反向的,即角色的覆盖属性优先于角色的覆盖属性。我无法猜出这背后的原因?任何人都可以解释一下为什么厨师选择了这样的优先顺序。
我还在主厨网站
中添加完整的属性优先级列表webView
属性。default
属性。default
属性。default
属性。default
属性。force_default
属性。force_default
属性。normal
属性。normal
。override attribute
。override attribute
。override attribute
。override attribute
属性。force_override
属性。force_override
属性。由于
答案 0 :(得分:0)
覆盖订单的说明在您链接的网站上。但请注意,因为这是一个常见的混淆,文档中的优先级指的是将值输入评估序列的顺序。由于评估采用覆盖形式,因此最低优先级值是评估完成后得到的值。因此,没有办法超越Ohai提供的价值。
角色和环境的属性优先顺序相反 对于默认和覆盖属性。默认的优先顺序 属性是环境,然后是角色。优先顺序为 覆盖属性是角色,然后是环境。应用环境 在角色覆盖属性允许的情况下覆盖属性 在多个环境中使用的角色,同时确保值 可以设置特定于每个环境的(必要时)。对于 例如,应用程序服务器的角色可能存在于所有角色中 环境,但一个环境可能使用数据库服务器 与其他环境不同。
至于为什么默认不使用与override相同的逻辑,我不知道。