长话短说,我有一个数组属性foo
,设置如下:
echo '{"foo": ["bar"]}}}' | sudo chef-client -j /dev/stdin
问题在于对bar
的不同值的chef-client的多次调用,而不是替换foo
数组,它只是附加到它。我该如何完全替换?
答案 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
限制,则它们会合并。最好不要在节点属性中使用数组,这样可以为您节省很多麻烦。