Назад | Перейти на главную страницу

Как запустить Puppet на нескольких узлах одновременно с помощью MCollective?

Цель

На данный момент в офисе более 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 во всех системах.