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