====== Puppet ======
Puppet est un service d'automatisation très efficace. Il se décompose en deux parties :
- L'agent puppet qui doit-être installé sur toutes les machines à gérer
- Le puppet master qui va pousser les modifications sur les agents.
Cette définition est simple mais inexacte car on ne dit jamais à puppet de faire des modifications on lui donne l'état final et il sait comment procéder pour y arriver (installation de packages etc ...)
Puppet n'est plus utilisé en prod à MiNET car personne ne le maintenait.
De plus, d'après les vieux, le projet Puppet bat de l'aile et d'autres solutions (comme Ansible par exemple) seraient plus adaptées à notre utilisation.
===== Installation de puppet =====
Ajout du depot et installation de l'agent:
export http_proxy=http://192.168.102.61:82
wget http://apt.puppetlabs.com/puppetlabs-release-wheezy.deb
dpkg -i puppetlabs-release-wheezy.deb
apt-get update
apt-get install puppet
Afin de faire démarrer puppet au démarrage de la machine, modifiez /etc/default/puppet comme ci-dessous
# Defaults for puppet - sourced by /etc/init.d/puppet
# Start puppet on boot?
START=yes
# Startup options
DAEMON_OPTS=""
Dans /etc/puppet/puppet.conf, ajoutez les lignes ci-dessous
[agent]
report=true
server=puppet.minet.net
listen=true
Créer le fichier /etc/puppet/auth.conf
# touch /etc/puppet/auth.conf
Puis redémarrez l'agent
/etc/init.d/puppet restart
Afin d'envoyer une requête vers puppetmaster (le serveur puppet), faîtes :
# puppet agent --test
Une erreur apparaît mais c'est normal, vous avez besoin d'accepter le certificat du client sur puppetmaster.
RDV sur la VM puppet (c'est un exemple avec ntp1, à adapter)
root@puppet:/etc/puppet# puppet cert list
"ntp1.minet.net" (SHA256) [...]
root@puppet:/etc/puppet# puppet cert sign ntp1.minet.net
Signed certificate request for ntp1.minet.net
Removing file Puppet::SSL::CertificateRequest [...]
Enfin Vérifiez que la VM sur laquelle vous avez configuré l'agent apparaît bien sur le dashboard : http://192.168.102.195:3000/
===== Trubble shooting =====
* Un [[http://docs.puppetlabs.com/guides/troubleshooting.html|lien]] qui peut aider en cas de soucis de syntaxe