我们是一个linux/windows混合商店,不久前成功采用Puppet进行配置管理。我们希望将ansible作为我们的部署编排工具(研究表明puppet做得不是很好),但是对于如何集成这两个产品有疑问。
今天,puppet是关于环境信息(哪些节点属于哪些组等)的真相来源。我想避免重复这个信息。在这两种产品之间共享环境信息方面,有什么最佳实践吗?
减少系统之间重复状态的一种方法是使用Ansible的"动态库存"支持。不是在文本文件中定义主机/组,而是使用从其他地方提取相同数据的脚本。这可能是PuppetDB, Foreman等,并将取决于您的环境。
写一个新的脚本也很简单,它只需要是任何可执行的(bash/python/ruby/等)返回json在一个特定的格式。
最后,可以使用puppet推出新版本,但使用类似于发布过程的"微服务"会更容易。确保应用/服务/数据库在不同版本之间保持向后兼容,可以使puppet和你最喜欢的包管理器推出版本变得微不足道。
如果您正在从puppetlabs寻找解决方案,则应该使用Puppet和Mcollective
https://puppetlabs.com/mcollective