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

030*_*030 6 activemq mcollective puppet-agent

目的

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


试图

ActiveMQ的MCollective服务器MCollective客户端已经安装在戏梦人生。一旦mco ping运行,就可以找到Puppetmaster。安装完成后MCollective木偶代理和运行mco rpc puppet runonce木偶是在运行戏梦人生

为了连接远程 mcollective-client,想法是必须安装并运行activemqmcollective-client,以便通过发出mco ping.

/var/log/mcollective.log

INFO -- : activemq.rb:114:in `on_connecting' TCP Connection attempt 23 to stomp://mcollective@stomp1:6163
Run Code Online (Sandbox Code Playgroud)

/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>
Run Code Online (Sandbox Code Playgroud)

/etc/mcollective/server.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
Run Code Online (Sandbox Code Playgroud)

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


预期结果

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


当前结果

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

030*_*030 5

需要一台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
Run Code Online (Sandbox Code Playgroud)

/etc/mcollective/server.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
Run Code Online (Sandbox Code Playgroud)

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