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