我想覆盖节点属性,例如我发送到每个特定节点的公共ip,作为测试到不同节点的一部分,我正在使用"刀节点"编辑它。
当我尝试更改默认属性时,我无法覆盖默认属性我在编辑后保存节点时得到以下错误"节点未更新,跳过节点保存"
尝试在节点编辑中的默认属性中添加以下内容,即使我尝试了覆盖但它失败了。有人可以给我任何方式 通过它我可以实现它
"default": {
"deploy": {
"external_ip": "10.38.9.2"
}
},
我没有找到任何正确的答案,所以我在这里创建了这个问题。
谢谢,
答案 0 :(得分:0)
托米,
直接来自https://docs.chef.io/attributes.html#attribute-precedence
自动属性包含由Ohai识别的数据 每个厨师 - 客户运行的开始。自动属性不能 已修改且始终具有最高的属性优先级。
我希望这很有用。
答案 1 :(得分:0)
一般来说,您可以按照描述的方式设置默认属性。但是,您设置的属性会被Ohai自动属性覆盖。自动属性优先于所有其他属性,正如@tiago所指出的那样,只读。
假设您正在尝试使用chef更改IP地址,则需要使用配方来执行此操作,而不仅仅是属性。该配方可能会使用node[:set_ip_address]
或node[:new_ip_address]
等属性来存储所需的值。可能存在可以执行此操作的现有食谱,但我建议您在更改ipaddress后验证它是否还重新加载ohai数据,否则node[:external_ip]
仍将具有旧值。