是的,我知道,我们有一个名为“spiceweasel”的工具来处理所有这些,但我非常好奇,它是如何以及为什么它在主厨中以这种方式工作。如何更新节点的状态而不是覆盖它?
厨师带来了一个很好的想法,有一个你描述的环境的整个存储库,这个想法是伟大的,但节点似乎并不像我期望的那样工作。
所以出现这种情况: 您有厨师服务器/工作站设置,并且您的群集中已有bootstraped
和provisioned
节点。如您所知,每个节点在某个时间间隔运行chef-client
,我将定义。因此,每个节点都会按照随机间隔重新运行食谱,检查是否没有机会,如果发生变化 - 它会变回原处。
因此,您的资料库中有文件夹nodes/
。而当你做knife upload /nodes
时,所有节点的配置必须是更新了,但现在它完全覆盖了节点的状态。那么为什么这是不好的?因为,假设我编辑了节点配置文件并将其上载到主服务器,则节点状态将重置,直到下一次chef-client run
操作。我有一个驻留在另一个节点上的cookbook /角色,它检查特定节点(它拥有特定角色)的IP。有一个很大的机会,当chef-client run
将在其中一个节点上执行时,它不会找到另一个节点的IP,整个食谱将无法运行!
也许是错误的食谱使用节点状态,但嘿,这是所有的地方..所以现在会是不错的选择,只是为了UPDATE节点状态,而不是将其覆盖。
所以问题是:是否有可能更新节点的状态,而不是销毁它?
这实际上是辉煌!如果没有任何东西会弹出,我已经接受了你的回答,但我确实对主厨服务器的行为感兴趣。这真的很好,这可以在厨师回购本身! – holms