当连接在配置拉取/推送期间丢失时,Chef和Ansible是否会应用配置

65次阅读
没有评论

问题描述

在使用配置管理工具(如Ansible或Chef)时,通常有一个主控机和被控制的机器(代理)。如果在拉取或推送配置的过程中,主控机和代理之间的连接丢失了,那么代理会继续应用配置还是停止应用配置?

解决方案

请注意以下操作注意版本差异及修改前做好备份。

Chef

在Chef中,通常以客户端-服务器模式运行,因此“被控制”的机器上的chef-client代理将继续运行。当代理需要获取cookbook或确定分配的角色时,它可能会被阻塞。它最终会超时并导致chef运行失败。然后,它会在几分钟后再次尝试。默认情况下,代理每30分钟尝试运行一次chef。

如果您使用的是chef-zero而不是chef的客户端-服务器模式,那么您可以将所有内容都部署在“被控制”的机器上,这样任何网络中断都不会因为chef本身而中断。但是,您可能仍然在使用的cookbooks中有网络依赖关系。

Ansible ssh // push

Ansible最初通过ssh执行所有操作。在这种Ansible的方式中,“被控制”的节点的完成状态是未知的,但从运行ansible的用户的角度来看,该节点显然需要重新尝试。Ansible会为您创建一个包含所有需要重新尝试的主机的文件。

Ansible in cron // pull

如果您从cron作业中运行Ansible,则会面临与经典的chef-client类似的问题。节点将需要与主机进行通信以查找角色和更新,但它会超时并稍后重试。

这些解决方案是基于经验和常见做法,可能会因具体情况而有所不同。建议在实际使用中进行测试和验证。

参考资料:
Chef Documentation
Ansible Documentation

以上是关于当连接在配置拉取/推送期间丢失时,Chef和Ansible是否会应用配置的解决方案。希望对您有所帮助!

正文完