需要让一个Puppet Agent联系一些不同的Puppet Master。
原因:有不同的组创建独立的清单集合。
可能的组及其任务
- 应用供应商:应用配置
- 安全:硬化
- 操作:路由表,监控工具
每个组都应该运行自己的Puppet Master-数据(清单和适当的数据)应严格分离。如果可能,甚至应该让一组看不到/无法访问其他组的清单(我们在Puppet Agent操作系统上使用MAC)。
所有失败的想法和思路:
- 仅使用Hiera不够灵活-需要有不同的清单。
- r10k:支持多个环境,但在每个环境中只能访问一组清单。
- 多个但相同的Puppet服务器使用例如DNS轮询:这是另一种方式。我们需要不同的Puppet Master。
一些可能可行的方式但...
- 运行多个Puppet Agent实例。 这“感觉”很奇怪。优点:可以按需限制访问权限(例如,应用程序Puppet Agent可以在应用程序用户下运行)。
- 修补Puppet使其能够处理多个Puppet Master。 缺点:可能需要一些工作。
- 使用其他机制来分担责任。 例如:使用不同的git存储库。 创建一个Puppet Master。 Puppet Master拉取所有不同的存储库并提供清单。
我的问题:
- 是否有一种简单直接的方式实现这个要求?
- 如果没有,是否有一些最佳实践如何做到这一点?