Quando estamos no caminho da automação de processos e garantia de estado uma das ferramentas poderosas e nossa aliada é o Puppet.
Quanto mais se conhece de Puppet, mais quer integrá-lo ao CouchDB para que o mesmo responda de forma inteligente consultas no formato JSON via Hiera.
O que essa publicação de propõe é a facilitar, apoiando-o na migração do site.pp dos seus ambientes, hoje com todas informações de classes, includes e tasks carregadas dos agents no site.pp e que serão exportadas para o CouchDB.
Segue abaixo a explicação de uso de um programa que criei para automatizar o processo de exportação. Ele já faz a análise se o agent existe no CouchDB, caso exista o mesmo ignora, do contrário, exporta para a base.
Repositório GIT do programa: https://github.com/helkmut/ couchdb-populate
Exemplo de execução:
[root@Teste-CouchDB rb-couchdb-populate]# ./bin/rb-couchdb-populate.rb
| Starting agent Current Time : 2015-02-04 23:41:22 -0200 |
| Test database connection > configuration |
| Connection PASS |
| Directory /etc/puppet exist |
| Parse file /etc/puppet/environments/prd/ manifests/site.pp |
| Parse file /etc/puppet/environments/dev/ manifests/site.pp |
| Node vagrant-teste.local already exists in CouchDB |
| Parse file /etc/puppet/environments/hlg/ manifests/site.pp |
| OK - Program end with success |
O que o programa não contempla:
1 - se o Document existir ele não atualiza os fields;
2 - ainda não está fazendo parse das 'tasks', mas faz de chamadas 'includes' e 'classes'.
Sugiro testar em um laboratório com uma Vagrant de CounchDB, hiera e Puppet Master. Naturamente que isto não se aplica a versão Enterprise do Puppet, que já não faz o gerenciamento dos agents por site.pp.
Nenhum comentário:
Postar um comentário