似乎在 ansible 世界中处理库存的方法太多了,我们面临一些难题。
我们目前有 4 个官方目标环境:生产、登台、测试和本地(localhost)。现在它们都是位于根目录中的单个inventory.ini 中的所有主机组。
几乎所有的整个基础设施都在 AWS 上运行,唯一的例外是一些开发人员在 localhost 或本地 VM 上运行他们的本地环境。尽管如此,所有其他非个人环境都在 AWS 上。
一些工作人员希望将其拆分为每个环境的不同清单,以避免一次意外执行。我有点担心这可能会增加维护成本,并且可能会使使用 Ansible Tower、Semamphore 或 RunDeck 等工具变得更加困难。我还想切换到 ec2 动态库存,这使得拆分不那么有趣。
以下是一些必须通过最佳设置解决的问题:
- 如何将特定组件部署到特定环境?
- 如何在不影响生产或登台的情况下测试剧本?
- 他应该在我们的剧本中保留什么默认值作为“主机:值”
- 如果我们要使用多个文件,默认清单应该是什么
- 我们如何针对整个基础架构部署一些东西(同时多个库存)