Цель
На данный момент в офисе более 100 систем, и ожидается, что их количество будет расти. Все системы управляются Puppet. Если код Puppet изменяется на Puppet Master и его необходимо реализовать в нескольких системах, Puppet запускается вручную путем выполнения sudo puppet agent -t
в каждой системе. Иногда необходимо внести изменения в более чем 10 систем. Чтобы сэкономить время, идея состоит в том, чтобы использовать MCollective, то есть запускать puppet один раз во всех системах вместо запуска puppet в каждой системе.
Попытка
ActiveMQ, MCollective Сервер и MCollective Client были установлены на Кукловод. однажды mco ping
работает Кукловод может быть найден. После установки MCollective Puppet Agent и бег 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 Server и множественный Требуются MCollective Clients (по одному на каждый узел) или нет?
Ожидаемый результат
Ожидаемый результат: mco ping
находит Кукловод и удаленный клиент. Как только это сработает, можно будет запустить Puppet в обеих системах с помощью MCollective. Когда можно будет запустить Puppet в этих двух системах с помощью MCollective, будет добавлено несколько узлов, и Puppet будет запускаться в этих системах один раз. mco rpc puppet runonce
был казнен.
Текущий результат
Поскольку невозможно найти удаленного клиента, выполнив mco ping
Невозможно запустить Puppet в обеих системах с помощью MCollective.
Один Требуется сервер ActiveMQ, MCollective должен быть установлен на каждом узле и plugin.activemq.pool.1.host
сниппет должен содержать IP-адрес сервера ActiveMQ.
[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/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
Как только узлы Puppet были обнаружены, выполнение mco rpc puppet runonce
запускает Puppet во всех системах.