Puppet - instalando e configurando r10K

No Puppet, temos uma ferramenta de gerenciamento de código conhecida como r10k que ajuda no gerenciamento de configurações de ambiente relacionadas a diferentes tipos de ambientes que podemos configurar no Puppet, como desenvolvimento, teste e produção. Isso ajuda a armazenar configurações relacionadas ao ambiente no repositório de código-fonte. Usando as ramificações do repo de controle de origem, o r10k cria ambientes na máquina mestre do Puppet, instala e atualiza o ambiente usando os módulos presentes no repo.

O arquivo Gem pode ser usado para instalar o r10k em qualquer máquina, mas para modularidade e para obter a versão mais recente, usaremos o gerenciador de pacotes rpm e rpm. A seguir está um exemplo para o mesmo.

$ urlgrabber -o /etc/yum.repos.d/timhughes-r10k-epel-6.repo
https://copr.fedoraproject.org/coprs/timhughes/yum -y install rubygem-r10k

Configure o ambiente em /etc/puppet/puppet.conf

[main] 
environmentpath = $confdir/environments

Crie um arquivo de configuração para r10k Config

cat <<EOF >/etc/r10k.yaml 
# The location to use for storing cached Git repos 
:cachedir: '/var/cache/r10k' 
# A list of git repositories to create 
:sources: 
# This will clone the git repository and instantiate an environment per 
# branch in /etc/puppet/environments 
:opstree: 
#remote: 'https://github.com/fullstack-puppet/fullstackpuppet-environment.git' 
remote: '/var/lib/git/fullstackpuppet-environment.git' 
basedir: '/etc/puppet/environments' 
EOF

Instalando Manifesto e Módulo Puppet

r10k deploy environment -pv

Como precisamos continuar atualizando o ambiente a cada 15 minutos, criaremos um cron job para o mesmo.

cat << EOF > /etc/cron.d/r10k.conf 
SHELL = /bin/bash 
PATH = /sbin:/bin:/usr/sbin:/usr/bin 
H/15 * * * * root r10k deploy environment -p 
EOF

Instalação de teste

Para testar se tudo funciona como aceito, é necessário compilar o manifesto do Puppet para o módulo do Puppet. Execute o seguinte comando e obtenha uma saída YAML como resultado.

curl --cert /etc/puppet/ssl/certs/puppet.corp.guest.pem \ 
--key /etc/puppet/ssl/private_keys/puppet.corp.guest.pem \ 
--cacert /etc/puppet/ssl/ca/ca_crt.pem \ 
-H 'Accept: yaml' \ 
https://puppet.corp.guest:8140/production/catalog/puppet.corp.guest