如何使用 MCollective 同时在多个节点上运行 Puppet?

如何使用 MCollective 同时在多个节点上运行 Puppet?

目的

目前,办公室中有 100 多个系统,预计数量还会增加。所有系统都由 Puppet 管理。如果 Puppet Master 上的 Puppet 代码发生变化,需要在多个系统上实施,则需要在每个系统上执行 Puppet 来手动运行。有时sudo puppet agent -t需要在 10 多个系统上实施更改。为了节省时间,我们的想法是使用 MCollective,即在所有系统上运行一次 puppet,而不是在每个系统上运行 puppet。


试图

活动消息队列MCollective 服务器MCollective 客户端已安装在木偶大师。一旦mco ping运行木偶大师可以找到。安装后MCollective 傀儡代理并且运行mco rpc puppet runoncePuppet 运行在木偶大师

为了连接偏僻的 mcollective-客户端这个想法是主动队列mcollective-客户端必须安装并运行才能通过发出来找到第二台主机mco ping

/var/log/mcollective.log

INFO -- : activemq.rb:114:in `on_connecting' TCP Connection attempt 23 to stomp://mcollective@stomp1:6163

/etc/activemq/activemq.xml

    <transportConnectors>
        <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
            <transportConnector name="stomp" uri="stomp://0.0.0.0:61613"/>
        </transportConnectors>
</broker>

/etc/mcollective/服务器.cfg

connector = activemq
plugin.activemq.pool.size = 1
plugin.activemq.pool.1.host = localhost
plugin.activemq.pool.1.port = 61613
plugin.activemq.pool.1.user = mcollective
plugin.activemq.pool.1.password = helloworld

其中一个假设是应该在 server.cfg 中配置多个主机。在尝试使其工作时,不清楚架构应该是什么样子。ActiveMQ,MCollective 服务器和多种的是否需要 MCollective 客户端 (每个节点上一个)?


预期结果

预期的结果是mco ping找到木偶大师远程客户端。一旦成功,就可以使用 MCollective 在两个系统上运行 Puppet。当可以使用 MCollective 在这两个系统上执行 Puppet 时,将添加多个节点,一旦mco rpc puppet runonce执行,Puppet 就会在这些系统上运行。


目前的结果

由于无法通过执行找到远程客户端,mco ping因此无法使用 MCollective 在两个系统上运行 Puppet。

答案1

需要 ActiveMQ 服务器,需要在每个节点上安装 MCollective,并且plugin.activemq.pool.1.host代码片段需要包含 ActiveMQ 服务器的 IP。

在此处输入图片描述

[vagrant@localhost ~]$ mco ping
test                                  time=225.70 ms
test2                                 time=488.51 ms


---- ping statistics ----
2 replies max: 488.51 min: 225.70 avg: 357.10

/etc/mcollective/服务器.cfg

connector = activemq
plugin.activemq.pool.size = 1
plugin.activemq.pool.1.host = IP_ACTIVEMQ_SERVER
plugin.activemq.pool.1.port = 61613
plugin.activemq.pool.1.user = mcollective
plugin.activemq.pool.1.password = helloworld

一旦找到 Puppet 节点,执行mco rpc puppet runonce就会在所有系统上运行 Puppet。

相关内容