2015-11-05 49 views

回答

2

节点属性优先级可能会造成混淆。该文件确实帮助,一旦你读它几次

https://docs.chef.io/attributes.html

我的建议如下:

  1. 在属性设置默认属性您的食谱中的文件。不要在食谱中混淆你自己。
  2. 通过设置“正常”属性覆盖其他食谱的属性,并再次在食谱内的属性文件中执行此操作。
  3. 在运行时使用环境或角色属性覆盖烹饪书中设置的所有属性。
  4. 切勿直接在厨师服务器上编辑节点属性。没有交易的锁定,这意味着您的更新可能会丢失,如果一个厨师客户端在同一时间运行....

这里的目标是一致

+0

@josten哦,道歉。是的,Chef 11中的语法已更改。以下链接提供了更多详细信息:https://www.chef.io/blog/2013/02/05/chef-11-in-depth-attributes-changes/。简而言之,“node [a]”用于读取Chef节点对象内保存的现有值,“node.default [a]”用于设置该值。 –

2

node给你一个视图到整个节点对象。 node.default只会告诉您在default级别设置了什么值。因此,你永远不应该从node.default读取,因为你会明确忽略所有更高的先例水平。即你的overrides不会计数。 node.default存在允许您在节点上设置默认值。