Puppet - Installazione e configurazione di r10K

In Puppet, abbiamo uno strumento di gestione del codice noto come r10k che aiuta a gestire le configurazioni dell'ambiente relative a diversi tipi di ambienti che possiamo configurare in Puppet come sviluppo, test e produzione. Ciò aiuta a memorizzare la configurazione relativa all'ambiente nel repository del codice sorgente. Utilizzando i rami del repository di controllo del codice sorgente, r10k crea ambienti sulla macchina master Puppet e installa l'ambiente utilizzando i moduli presenti nel repository.

Il file Gem può essere usato per installare r10k su qualsiasi macchina ma per modularità e per ottenere l'ultima versione, useremo rpm e rpm package manager. Di seguito è riportato un esempio per lo stesso.

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

Configura l'ambiente in /etc/puppet/puppet.conf

[main] 
environmentpath = $confdir/environments

Creare un file di configurazione per 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

Installazione di Puppet Manifest e Module

r10k deploy environment -pv

Poiché dobbiamo continuare ad aggiornare l'ambiente ogni 15 minuti, creeremo un cron job per lo stesso.

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

Installazione di prova

Per verificare se tutto funziona come accettato, è necessario compilare il manifest di Puppet per il modulo Puppet. Esegui il seguente comando e ottieni un output YAML come risultato.

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