跨条款意外保留了Chef.json属性

时间:2019-03-05 12:05:09

标签: vagrant chef

我对Vagrant / Chef Solo遇到问题,当我重新配置以前传递给chef.json的属性时,即使它们不再存在,这些属性仍会显示。

在流浪汉中,它们通过如下: machine_properties.vm.provision :chef_solo do |chef| chef.json = machine_options end

如果在第一次运行时将machine_options设置为以下内容,则一切正常 machine_options['colours']['red'] = '#ff0000' machine_options['colours']['green'] = '#00ff00'

如果您随后将其更改为以下内容,则会开始看到green项目仍然存在。 (此外,/tmp/vagrant-chef/dna.json文件只显示红色和蓝色,就像在流浪汉文件中显示puts一样)

machine_options['colours']['red'] = '#ff0000' machine_options['colours']['blue'] = '#0000ff' 但是,在使用Chef的情况下,如果您Chef::Log.info(node["colours"]),您会看到红色,蓝色和绿色现在全部存在。这弄乱了模板,这些模板现在可以迭代所有元素,并且还意味着期望节点存在/不存在的条件和条件将节点视为存在。

看起来像Chef正在将它们视为node.normal['colours']等,而不是node.default['colours']。在config.omnibus.chef_version = '14.10.9'中升级Chef的(主要?)版本可修复(d?)以便下次运行(即清除了所有内容),但随后的规定最终又充满了长删除的属性:(

是否有任何方法可以迫使Chef忘记先前的运行所告知的内容,而实际上将当前的chef.json视为完整的东西?

0 个答案:

没有答案