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