2015-11-05 52 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存在允許您在節點上設置默認值。