Puppet client
| Fiche express | |
|---|---|
| Type | Procédure d'installation |
| Contexte | Déploiement de l'agent Puppet historique (paquets séparés puppet/ruby), Puppet 2.x/3.x
|
| Périmètre | RHEL/CentOS 5, 6, 7 · Debian |
| Voir aussi | Puppet · Puppet client 4 · Puppet-dashboard |
Puppet client décrit l'installation historique de l'agent Puppet à partir des paquets séparés (puppet, ruby, augeas...), utilisée jusqu'à Puppet 3.x. Depuis Puppet 4, l'agent est distribué sous forme de paquet unique tout-en-un (puppet-agent, avec Ruby et les dépendances embarquées) — voir Puppet client 4 pour cette procédure plus récente.
Prérequis
Voir RUBY pour l'installation de l'interpréteur via les dépôts système (méthode recommandée sur les versions historiques, avant l'agent tout-en-un).
Installation du dépôt
Le dépôt officiel varie selon la version de la distribution :
- RHEL/CentOS 6
rpm -ivh http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-7.noarch.rpm
- RHEL/CentOS 5
rpm -ivh http://yum.puppetlabs.com/el/5/products/x86_64/puppetlabs-release-5-7.noarch.rpm
- RHEL/CentOS 7
rpm -ivh http://yum.puppetlabs.com/el/7Client/products/x86_64/puppetlabs-release-7-11.noarch.rpm
- Debian
wget https://apt.puppetlabs.com/puppetlabs-release-pc1-trusty.deb
Note (à vérifier) : ces URL pointent vers l'ancien dépôt yum.puppetlabs.com/apt.puppetlabs.com, historique et probablement mort aujourd'hui — le domaine Forge/dépôts a migré vers puppet.com. À adapter selon la version de Puppet réellement ciblée.
Pour désactiver l'activation automatique du dépôt après installation (pour le réactiver manuellement au moment voulu) :
sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/puppetlabs.repo
Installation de l'agent
yum -y install puppet ruby ruby-rdoc augeas --enablerepo=puppetlabs*
Configuration minimale (ancienne syntaxe par variables d'environnement, RHEL/CentOS) :
vi /etc/sysconfig/puppet PUPPET_SERVER=puppet-master.example.com PUPPET_LOG=/var/log/puppet/puppet.log
Configuration principale, section [main] de /etc/puppet/puppet.conf :
vi /etc/puppet/puppet.conf
[main]
# Serveur Puppet master
server = puppet-master.example.com
# Facts personnalisés
pluginsync = true
pluginsource = puppet://$server/plugins
factpath = /var/lib/puppet/lib/facter
report = true
Activation et démarrage du service :
chkconfig puppet on puppet agent --daemonize /etc/init.d/puppet start
Déclaration et signature du client
Après l'installation ci-dessus, l'agent se déclare seul auprès du master lors de son premier run.
Côté serveur, lister les demandes de certificat en attente :
puppet cert list
Accepter un client précis :
puppet cert sign agent01.example.com
Accepter toutes les demandes en attente :
puppet cert sign --all
Attention : puppet cert sign --all signe indistinctement toutes les demandes en attente, y compris une demande frauduleuse usurpant le nom d'un nœud légitime. À réserver à un environnement de labo ou une fenêtre de déploiement contrôlée ; en production, signer les certificats un par un après vérification du fingerprint affiché par l'agent.
Emplacement des demandes et des certificats signés :
- Demandes en attente :
/var/lib/puppet/ssl/ca/requests/ - Certificats acceptés :
/var/lib/puppet/ssl/ca/signed/
Côté client, déclencher un run et l'inscrire sur la console (si un ENC/dashboard est utilisé, voir Puppet-dashboard) :
puppet agent --test
Ancienne syntaxe (binaire puppetd, Puppet < 2.6)
Sur les toutes premières versions de Puppet, la commande était puppetd plutôt que puppet agent (les deux binaires ont ensuite fusionné) :
puppetd -t
Pour vérifier que l'agent peut bien écrire sur le système de fichiers si aucune erreur n'apparaît :
touch /tmp/puppet-test; chmod 777 /tmp/puppet-test puppetd --server puppet-master.example.com
Réinitialiser le certificat d'un client
Supprimer le certificat côté master (à adapter avec le nom réel du nœud) :
find /var/lib/puppet/ssl -name agent01.example.com.pem -delete
Purger l'état local du client avant une nouvelle négociation :
find /var/lib/puppet -type f -print0 | xargs -0r rm
Relancer ensuite un puppet agent -t côté client puis re-signer côté master.
Voir aussi
- Puppet — page hub
- Puppet client 4 — installation de l'agent tout-en-un (Puppet 4+)
- Puppet-dashboard — ENC pouvant piloter l'affectation des classes à ce client
- Puppet forge — modules à installer une fois l'agent opérationnel