Como executar o Puppet em vários nós de uma vez usando o MCollective?

6

Objetivo

No momento, existem mais de 100 sistemas no escritório e a expectativa é de que o número aumente. Todos os sistemas são gerenciados pelo Puppet. Se o código Puppet for alterado no Puppet Master e precisar ser implementado em vários sistemas, o Puppet será executado manualmente, executando sudo puppet agent -t em cada sistema. Às vezes, uma mudança precisa ser implementada em mais de 10 sistemas. Para economizar tempo, a ideia é usar o MCollective, ou seja, executar o fantoche uma vez em todos os sistemas, em vez de executar o fantoche em todos os sistemas.

Tentativa

ActiveMQ , Servidor MCollective e Cliente MCollective foram instalados no Puppetmaster . Quando o mco ping é executado, o Puppetmaster pode ser encontrado. Depois de instalar MCollective Puppet Agent e executar mco rpc puppet runonce Puppet é executado no Puppetmaster .

Para conectar um controle remoto mcollective-client , a ideia era que activemq e mcollective-client tivessem para ser instalado e executado, a fim de encontrar o segundo host, emitindo 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

Uma das suposições era que vários hosts deviam ser configurados no server.cfg. Enquanto tentava fazê-lo funcionar, não ficou claro como a arquitetura deveria se parecer. Um ActiveMQ, um servidor MCollective e vários clientes MCollective (um em cada nó) são necessários ou não?

Resultado esperado

O resultado esperado é que mco ping encontre o Puppetmaster e o cliente remoto . Quando isso funcionar, seria possível executar o Puppet nos dois sistemas usando o MCollective. Quando é possível executar o Puppet nesses dois sistemas usando o MCollective, vários nós serão adicionados e o Puppet será executado nesses sistemas assim que mco rpc puppet runonce for executado.

Resultado atual

Como não é possível encontrar o cliente remoto executando mco ping , não é possível executar o Puppet nos dois sistemas usando o MCollective.

    
por 030 11.12.2014 / 14:44

1 resposta

5

Um servidor ActiveMQ é necessário, o MCollective precisa ser instalado em cada nó e o fragmento plugin.activemq.pool.1.host precisa conter o IP do servidor 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

Quando os nós do Puppet forem encontrados, a execução de mco rpc puppet runonce executará o Puppet em todos os sistemas.

    
por 15.12.2014 / 02:43