使用 MCollective 进行即时 Puppet 部署

使用 MCollective 进行即时 Puppet 部署

注:我不确定这个问题属于哪里。也许它更适合服务器故障,但由于我主要是为了黑客和家庭网络目的而询问,所以我在这里询问。另外,它可能会在不到 10 -100秒的时间内被火焰控制离开站点,这就是我避免使用服务器故障的原因。

我正在寻找设置并开始尝试拥有一个 Puppet Master 和几个 Puppet 客户端,以体验与真正的 Master 一起使用 Puppet 的感觉。默认情况下,Puppet 客户端实例(据我所知)每 30 分钟更新一次,向主服务器询问最新配置并在配置失败时应用它。

我听说 MCollective 基本上可以立即进行这些更改,因为它使用消息队列和并行性将命令实时推送到客户端。

我一直在尝试找出如何使用 Puppet Master 和 Puppet Clients 来实现这一点,但看起来 MCollective 是一个比 Puppet Master 的实时插件更大的项目。

如何设置一个简单的 Puppet Master、MCollective 服务器(和消息队列)和我的 Puppet 客户端以实时获取 Puppet 配置的更改?

(我大致了解如何操作apt-get install redis-server puppetmaster mcollective,但我希望了解如何将 MCollective 与 Puppet Master 集成起来。)

答案1

我没有玩过这个,但这听起来像你正在寻找的:

摘抄

该代理管理 puppet 代理,与旧的 puppetd ​​插件不同,该代理支持 Puppet 3 以及最近对其锁定和状态文件所做的更改。

除了对 Puppet 3 的基本支持之外,还添加了许多新功能,其中大多数功能都可以在 Puppet 2.7 和 3 下使用。

  • 支持 noop 运行或 no-noop 运行
  • 支持限制运行到某些标签
  • 支持splay、不splay、splaylimits
  • 支持指定自定义环境
  • 支持指定自定义master主机和端口
  • 支持 Puppet 3 功能,例如禁用时锁定消息
  • 使用新的摘要插件在适当的情况下提供方便的摘要
  • 使用新的验证插件提供更丰富的输入验证和更好的错误
  • 当前 Puppet 代理状态和最近运行状态的数据源

还有这段摘录:

运行所有已启用的 Puppet 节点

通常,在提交更改后,您希望在基础设施的性能限制范围内尽快将更改推广到您的基础设施。

Puppet Master 的性能通常取决于应用其可以维持的目录的最大并发 Puppet 节点数。

使用 MCollective 基础设施,我们可以确定当前启用并应用目录的计算机数量。

因此,要对整个基础设施进行 Puppet 运行,使并发 Puppet 运行一次尽可能接近 10 个节点,您可以执行以下操作:

  $ mco puppet runall 10

相关内容