我们是一个混合的linux / windows商店,前一段时间成功采用了Puppet for Config Mgmt。我们希望将ansible作为我们的部署编排工具(研究表明puppet不能很好地完成这项工作),但对如何集成这两种产品存有疑问。
今天,木偶是环境信息的真相来源(哪些节点属于哪些组等)。我想避免在ansible中复制这些信息。在两种产品之间共享环境信息方面是否有最佳实践?
答案 0 :(得分:1)
减少系统之间重复状态量的一种方法是使用Ansible's "Dynamic Inventory"支持。您可以使用从其他位置提取相同数据的脚本,而不是在文本文件中定义主机/组。这可能是PuppetDB,Foreman等,并且将取决于您的环境。
编写一个新脚本也很简单,它只需要是以特定格式返回json的任何可执行文件(bash / python / ruby / etc)。
最后,可以使用puppet推出新版本,但使用像发布过程这样的“微服务”更容易。确保应用程序/服务/数据库在各版本之间保持向后兼容,可以使用puppet和您最喜欢的包管理器轻松推出版本。
答案 1 :(得分:0)
如果你正在寻找puppetlabs的解决方案,那么使用Puppet和Mcollective应该是可行的方法