我正在尝试为 500-2000 个地理分布非常分散的主机选择一个配置管理系统。由于不同的网络可靠性,在任何给定时间,许多主机可能暂时不可用。出于这个原因,我最初的选择是 Chef,因为它使用“拉”模型,当主机上线并签入时,他们会立即获得当前配置。
但是,如果我的主机仅每 30 分钟轮询一次 Chef 服务器以获取新配置,那么快速部署是不可能的。另外,我不是Rubyist。我更喜欢使用基于推送的模型,在那里我可以尽快将配置推送到主机。所以,自然的选择似乎是 Ansible 或 SaltStack(可能是 SaltStack)。但我的问题是:Ansible 和 SaltStack 如何处理失败或宕机的主机?有什么方法可以一直重试推送,直到主机重新上线?是否存在使用这些工具正确处理主机最终一致性的模式?谢谢!