目的
目前,办公室中有 100 多个系统,预计数量还会增加。所有系统都由 Puppet 管理。如果 Puppet Master 上的 Puppet 代码发生变化,需要在多个系统上实施,则需要在每个系统上执行 Puppet 来手动运行。有时sudo puppet agent -t
需要在 10 多个系统上实施更改。为了节省时间,我们的想法是使用 MCollective,即在所有系统上运行一次 puppet,而不是在每个系统上运行 puppet。
试图
活动消息队列,MCollective 服务器和MCollective 客户端已安装在木偶大师。一旦mco ping
运行木偶大师可以找到。安装后MCollective 傀儡代理并且运行mco rpc puppet runonce
Puppet 运行在木偶大师。
为了连接偏僻的 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。