目标
目前办公室里有 100 多个系统,预计这个数字会增加。所有系统都由 Puppet 管理。如果 Puppet Master 上的 Puppet 代码发生变化,需要在多个系统上实现,则 Puppet 通过sudo puppet agent -t
在每个系统上执行来手动运行。有时需要在 10 多个系统上实施更改。为了安全起见,我们的想法是使用 MCollective,即在所有系统上运行一次 puppet,而不是在每个系统上运行 puppet。
试图
Puppetmaster上已经安装了ActiveMQ、MCollective Server和MCollective Client。一旦运行,可以找到Puppetmaster 。安装MCollective Puppet Agent并运行Puppet后,将在Puppetmaster上运行。mco ping
mco rpc puppet runonce
为了连接远程 mcollective-client的想法是必须安装并运行activemq和mcollective-client才能通过发出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/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
其中一个假设是应该在 server.cfg 中配置多个主机。在尝试使其工作时,不清楚架构应该是什么样子。是否需要一个ActiveMQ、一个MCollective 服务器和多个MCollective 客户端(每个节点上一个)?
预期结果
预期的结果是mco ping
找到Puppetmaster和远程客户端。一旦这工作,就可以使用 MCollective 在两个系统上运行 Puppet。当可以使用 MCollective 在这两个系统上执行 Puppet 时,将添加多个节点,一旦mco rpc puppet runonce
执行,Puppet 将在这些系统上运行。
目前的结果
由于无法通过执行找到远程客户端,mco ping
因此无法使用 MCollective 在两个系统上运行 Puppet。
需要一台 ActiveMQ 服务器,需要在每个节点上安装 MCollective,并且
plugin.activemq.pool.1.host
代码片段需要包含 ActiveMQ 服务器的 IP。/etc/mcollective/server.cfg
找到 Puppet 节点后,执行
mco rpc puppet runonce
将在所有系统上运行 Puppet。