Puppet: instalación y configuración de r10K

En Puppet, tenemos una herramienta de administración de código conocida como r10k que ayuda a administrar las configuraciones del entorno relacionadas con diferentes tipos de entornos que podemos configurar en Puppet, como desarrollo, pruebas y producción. Esto ayuda a almacenar la configuración relacionada con el entorno en el repositorio de código fuente. Usando las ramas del repositorio de control de código fuente, r10k crea entornos en las instalaciones de la máquina maestra Puppet y actualiza el entorno utilizando módulos presentes en el repositorio.

El archivo Gem se puede usar para instalar r10k en cualquier máquina, pero por modularidad y para obtener la última versión, usaremos rpm y el administrador de paquetes rpm. A continuación se muestra un ejemplo de lo mismo.

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

Configure el entorno en /etc/puppet/puppet.conf

[main] 
environmentpath = $confdir/environments

Cree un archivo de configuración para la configuración r10k

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

Instalación de Puppet Manifest y Module

r10k deploy environment -pv

Como necesitamos continuar actualizando el entorno cada 15 minutos, crearemos un trabajo cron para el mismo.

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

Prueba de instalación

Para probar si todo funciona según lo aceptado, es necesario compilar el manifiesto de Puppet para el módulo Puppet. Ejecute el siguiente comando y obtenga una salida 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