2017-06-15 15 views
0

私は役割(commonrole)を作成し、複数のノードに適用しました。 これで、特定のノードの属性の1つを上書きして、別の値に変更したいとします。 したがって、1つ以上のロール(noderole)が作成され、このノードに "commonrole"の後にそのロールが適用されましたが、ノードは新しい値(-Xmx2048m)を選択しません。シェフ属性の優先順位が機能しない

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出力ですぐに属性の変更が表示されないことにも注意してください。収束が成功した後でなければなりません。

関連する問題