如何使用一个木偶代理人的多个不同的木偶大师?

时间:2016-04-28 07:17:06

标签: puppet

一个木偶代理需要联系某些 木偶大师。

原因:有不同的组可以创建不同且独立的清单集。

可能的群组及其任务

  • 应用程序供应商:应用程序的配置
  • 安全:强化
  • 操作:路由表,监控工具

这些小组中的每一个都应该运行它自己的木偶大师 - 数据(清单和适当的数据)应该严格分开。如果可能,一个组甚至不应该看到/可以访问其他组的清单(我们在木偶代理操作系统上使用MAC)。

所有失败的想法和想法:

  • 使用(仅)hira根据需要不灵活 - 需要有不同的清单。
  • r10k:支持多个环境,但在每个环境中只能访问一组清单。
  • 多个但相同的木偶服务器使用例如DNS循环:这是另一种方式。我们需要不同的木偶大师。

可能的某些方法,但......

  • 运行木偶代理的多个实例。感觉'奇怪。优点:可以根据需要限制访问权限(例如,应用程序木偶代理可以在应用程序用户下运行)。
  • 修补木偶,它可以处理多个木偶大师。缺点:可能是一些工作。
  • 使用其他机制分担责任。示例:使用不同的git-repositories。创建一个木偶大师。木偶大师拉出所有不同的存储库并提供清单。

我的问题:

  1. 是否有直接的方式用puppet实现这个要求?
  2. 如果没有,是否有一些最佳做法如何做到这一点?

2 个答案:

答案 0 :(得分:2)

虽然我认为通过将所有模块和数据合并到一个主服务器上可以更好地解决您在此尝试做的事情,并且利用环境实际上将是完全相同的情况(不同的主服务器将提供不同的模块集/ data)这可以通过实现标准的多主机基础架构(一个用于证书签名的CA主机,多个编译主机,其证书由同一个CA主机签名,配置为在其他地方转发证书流量)来实现,并配置每个主机以满足您的需求需要。然后,您最终必须在每次运行时指定要签入的主服务器(cronjob或其他方法),并且有可能通过一次签入来更改另一个设置(有点消除强化/安全性概念)。 我想请您更深入地思考如何协作各方面(每个部门的git repos&hiera数据和具有访问控制的模块),以便中央主人可以满足您的需求(并且访问该主人将是从任何地方获取数据/模块的唯一方法。 这种类型的设置实现起来很复杂,但最终结果将更加可靠和可维护。 Puppet inc。甚至可以进行咨询,以帮助你做对。

也有其他方法,只是fyi。

答案 1 :(得分:0)

我经常发现将木偶代理多用于开发目的很方便,因为使用本地木偶服务器可以立即测试清单更改 - 没有要求提交,推送和r10k deploy environment就像有如果你只是使用目录环境和单个(远程)木偶服务器。

我发现最好的办法就是改变路径配置(否则会遇到问题,例如CA证书无法与其他服务器进行验证) - 一种形式的“运行多个木偶实例”代理人“的建议。 (我仍然让他们都享有特权,所以他们都可以使用apt package {}等。)

对于Puppet 3,我通过改变libdir --libdir来做到这一点(因为ssldir在libdir下),但现在(Puppet 4+)改变{{1}更合理}。所以,例如:

--confdir