Puppet 如何从一个傀儡代理使用多个不同的傀儡大师?

Puppet 如何从一个傀儡代理使用多个不同的傀儡大师?,puppet,Puppet,一个傀儡特工需要联系一些不同的傀儡主人 原因:有不同的组创建不同且独立的清单集 可能的小组及其任务 应用程序供应商:应用程序的配置 安全性:强化 操作:路由表、监视工具 每个组都应该运行自己的puppet master—数据(清单和适当的数据)应该严格分开。如果可能,一个组甚至不应该看到/访问其他组的清单(我们在puppet代理操作系统上使用MAC) 所有失败的想法和想法: 根据需要使用(仅)hira是不灵活的-需要有不同的清单 r10k:支持多个环境,但每个环境中只能访问一组清单 多个但

一个傀儡特工需要联系一些不同的傀儡主人

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

可能的小组及其任务

  • 应用程序供应商:应用程序的配置
  • 安全性:强化
  • 操作:路由表、监视工具
每个组都应该运行自己的puppet master—数据(清单和适当的数据)应该严格分开。如果可能,一个组甚至不应该看到/访问其他组的清单(我们在puppet代理操作系统上使用MAC)

所有失败的想法和想法:

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

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

  • 使用puppet是否有一种直接的方法来实现此要求
  • 如果没有,是否有一些最佳做法如何做到这一点

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


    也可能有其他方法,仅供参考。

    我经常发现,出于开发目的,将puppet代理多归属于多个主机非常方便,因为使用本地puppet服务器,您可以立即测试清单更改—无需提交,推送和
    r10k部署环境
    ,就像只使用目录环境和单个(远程)puppet服务器一样

    我发现最好的方法是改变路径配置(否则您会遇到问题,例如CA证书无法针对其他服务器进行验证)——这是您“运行多个puppet代理实例”建议的一种形式。(我仍然以特权方式运行它们,因此它们都可以使用apt
    package{}
    等。)

    对于Puppet 3,我会通过使用
    --libdir
    来改变libdir(因为ssldir在libdir之下),但是现在(Puppet 4+)改变
    --confdir
    看起来更明智。例如:

    $ sudo puppet agent -t                 # Runs against main puppet server
    $ sudo puppet agent -t \
      --server=puppet.dev.example.com \
      --confdir=/etc/puppetlabs/puppet-dev # Runs against dev puppet server
    

    或者,将来自不同来源的模块全部合并到单个(逻辑)主机上的同一环境中不仅会更容易设置,而且还可以免费自动检测一个组的规范与其他组的规范之间的冲突。将不同组的规格拆分为不同的环境将失去将所有内容放在同一主机上的许多(但不是全部)优势。谢谢您的回答。我目前正在尝试使用一个puppet主机和多个git服务器来实现这个版本。给我一些时间来评估一下。