Chef-client通过json实例化,附加到数组属性,而不是替换

时间:2016-03-08 20:20:52

标签: chef

长话短说,我有一个数组属性foo,设置如下:

echo '{"foo": ["bar"]}}}' | sudo chef-client -j /dev/stdin

问题在于对bar的不同值的chef-client的多次调用,而不是替换foo数组,它只是附加到它。我该如何完全替换?

2 个答案:

答案 0 :(得分:1)

所以我最终通过手动删除chef-server端的属性来解决这个问题:

node.normal['foo'].each do |k|
          node.normal['foo'].delete(k)
end

答案 1 :(得分:0)

关于属性合并的规则($.ajax({ type: "POST", url: theUrl, traditional: true, data: {applicationId : "Your application ID as a number"}, complete: modelCallback, fail : errorFunction }); 数据与Chef Server中存储的值合并)是不可靠的。如果两个数组处于同一级别且受-j限制,则它们会合并。最好不要在节点属性中使用数组,这样可以为您节省很多麻烦。