2017-06-15 96 views
0

我創建了一個角色(普通角色)並應用於多個節點。 現在我想覆蓋1個特定節點上的一個屬性以更改爲不同的值。 因此,創建了1個角色(noderole)並將該角色應用到此節點的「commonrole」之後,但我的節點不會選取新值(-Xmx2048m,如下所述)。廚師屬性precedance不起作用

Sample common role- 
{ 
    "name": "commonrole", 
    "description": "Manages all nodes", 
    "run_list": [ 
    "recipe[abc]" 
     ], 
    "default_attributes": { 
    "catalina_opts": [ 
     "-Dfile.encoding=UTF-8" 
    ] 
} 

Sample noderole- 
{ 
    "name": "noderole", 
    "description": "Manages particular node", 
    "run_list": [ 
    "role[commonrole]" 
    ], 
    "default_attributes": { 
    "catalina_opts": [ 
     "-Dfile.encoding=UTF-8", 
     "-Xmx2048m" 
    ] 
} 
} 

我錯過了什麼嗎?

+0

你確定沒有cookbook屬性爲'catalina_opts'使用'override'級別嗎?你如何確認沒有設定的價值?有關合並的評估順序,請參見[屬性優先順序](https://docs.chef.io/attributes.html#attribute-precedence)。 – Tensibai

回答

0

節點屬性中的數組有點奇怪。我已經在我的網站上寫了一篇完整的文章,但基本上這應該導致合併值爲:

[ 
    "-Dfile.encoding=UTF-8", 
    "-Dfile.encoding=UTF-8", 
    "-Xmx2048m" 
] 

或類似的東西。另請注意,只有在成功收斂之後,纔會在knife node show輸出中立即看到屬性更改。