我有一本带有属性的食谱。我从这本食谱中添加一个食谱来运行一个节点列表。我在该节点上运行chef-client
,并在Chef服务器上查看属性及其值。
后来我更改了cookbook属性,上传了cookbook,使用-o
选项运行了特定的食谱。我没有在Chef服务器上看到属性的更新值。
我在某地读过-o选项不会更新厨师服务器。因此,我们不应经常使用-o选项并仅将其用于开发目的。
如果菜谱总是通过-o选项运行,则无法在服务器上的节点属性上看到属性和配方(我觉得这很糟糕?)。
由于 AMOD
答案 0 :(得分:1)
虽然我同意你可能做错的观点,但如果你需要覆盖运行列表,那么实现它的一种方法是:
A) 创建/etc/chef/alternative.json,下面的内容填充了您的替代运行列表:
{" run_list":[]}
b)确保您拥有节点的“真实”运行列表。 /etc/chef/first-boot.json
c)定期运行以下命令刷新统计数据
chef-client -j /etc/chef/empty.json
d)当你真的想要聚合节点时,请使用:
chef-client -j /etc/chef/first-boot.json
答案 1 :(得分:0)
-o
选项允许主厨使用与通常完全不同的运行列表,因此不会将其保存到主厨服务器。
如果您需要定期与-o
一起运行,那么您可能做错了。
使您的配方具有幂等性或更改它,以便可以使用某处的标志(节点属性或数据包项)启用运行,而无需修改节点运行列表
如果没有用例,就很难就如何解决这个问题给出正确的建议。