Как запустить 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 на всех системах.

Другие вопросы по тегам