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