Ceci est une ancienne révision du document !
Puppet : Gestionnaire de configurations
Introduction
Puppet est un gestionnaire de configurations des serveurs en centralisant les configurations des serveurs esclaves sur un serveur maître, il permet ainsi d'avoir un état de configuration identique sur tous les serveurs esclaves à partir du maître.
Puppet est simple d'utilisation, bien documenté et de nombreuses ressources existe sur le web.
Installation
La procédure suivante a été validé sur un ensemble Debian 8.5 64 bits et Puppet en version 3.7.2.
Avant tout, lancé un 'apt-get update' afin de récupérer les derniers paquets.
Les commandes sont à lancer en root ou précédées de 'sudo'.
=> Installation du serveur Puppet (master)
L'installation se fait via les dépôts officiels :
master$ apt-get install puppetmaster
Afin de vérifier que le service soit bien lancé :
master$ service puppetmaster status
master is running.
=> Installation d'un client Puppet (slave)
L'installation se fait via les dépôts officiels :
slave$ apt-get install puppet
Utilisation derrière un pare-feu
Puppet communique sur le port TCP/8140 qui est le port par défaut.
Si vos serveurs sont protégés par iptables il faut alors ouvrir le port.
iptables -A OUTPUT -p tcp -m state --state NEW,ESTABLISHED --sport 8140 -j ACCEPT iptables -A INPUT -p tcp -m state --state NEW,ESTABLISHED --dport 8140 -j ACCEPT
Ou alors, vous pouvez le faire encore plus finement en ajoutant les IP (Attention au nombre de serveurs).
iptables -A OUTPUT -p tcp -m state --state NEW,ESTABLISHED --sport 8140 -s ADRESSE_MASTER -d ADRESSE_SLAVE -j ACCEPT iptables -A INPUT -p tcp -m state --state NEW,ESTABLISHED --dport 8140 -s ADRESSE_SLAVE -d ADRESSE_MASTER -j ACCEPT
Configuration des clients
Pour fonctionner le slave à besoin de connaître l'adresse du master. Sur le slave, utiliser votre éditeur favoris pour modifier le fichier /etc/puppet/puppet.conf et ajouter la ligne suivante dans le section [main].
server=ADRESSE_MASTER
Une fois effectué, il faut initialiser une seule fois la connexion sécurisé entre le slave et le master.
slave$ puppet agent -t -v -w 60 Info: Caching certificate for ca Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml Info: Creating a new SSL certificate request for puppet-srv1 Info: Certificate Request fingerprint (SHA256): EA:AB:A1:BF:C2:55:C8:FD:E2:69:10:7F:30:C6:07:7C:06:BD:A2:1F:B0:30:62:2D:C3:61:00:CD:F5:E4:B0:B3 Info: Caching certificate for ca
Ensuite, sur le master, on affiche la liste des certificats en attentes de validation.
master$ puppet cert --list "puppet-srv1" (SHA256) EA:AB:A1:BF:C2:55:C8:FD:E2:69:10:7F:30:C6:07:7C:06:BD:A2:1F:B0:30:62:2D:C3:61:00:CD:F5:E4:B0:B3
Un slave du nom de “puppet-srv1” est donc en attente de validation sur le master.
master$ puppet cert --sign puppet-srv1 notice: Signed certificate request for puppet-srv1 notice: Removing file Puppet::SSL::CertificateRequest puppet-srv1 at '/var/lib/puppet/ssl/ca/requests/puppet-srv1.pem'
Configuration du master
En cours de rédaction.
Utilisation
En cours de rédaction.