Installation de l'agent Puppet sur les nœuds clients
1 Installation sur EL9
# Installer le dépôt Puppet 7
sudo dnf install -y https://yum.puppet.com/puppet7-release-el-9.noarch.rpm
# Installer l'agent Puppet
sudo dnf install -y puppet-agent
# Ajouter Puppet au PATH
echo 'export PATH=/opt/puppetlabs/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
2 Configuration de l'agent Puppet
# Éditer la configuration Puppet
sudo vim /etc/puppetlabs/puppet/puppet.conf
Ajouter/modifier dans la section [main] :
[main]
certname = client.mondomaine.com
server = foreman.mondomaine.com
environment = production
runinterval = 30m
3 Configuration du fichier hosts sur le client
sudo vim /etc/hosts
Ajouter (pointer vers le serveur HAProxy, pas Foreman) :
<IP_HAPROXY> foreman.mondomaine.com foreman
Important : Les clients doivent pointer vers HAProxy, qui fait office de reverse proxy SSL/TLS.
4 Premier run et signature du certificat
IMPORTANT : Le Puppet Server (port 8140) fonctionne directement sur le serveur Foreman, pas à travers HAProxy. Vous avez deux options :
Option 1 : Ajouter un frontend HAProxy pour Puppet (recommandé)
Sur le serveur HAProxy, ajouter à /etc/haproxy/haproxy.cfg :
#---------------------------------------------------------------------
# Frontend TCP - Puppet Server (port 8140)
#---------------------------------------------------------------------
frontend puppet_front
bind *:8140
mode tcp
option tcplog
default_backend puppet_backend
#---------------------------------------------------------------------
# Backend - Puppet Server
#---------------------------------------------------------------------
backend puppet_backend
mode tcp
balance roundrobin
option tcp-check
# Serveur Puppet
server puppet1 <IP_SERVEUR_FOREMAN>:8140 check inter 5s rise 2 fall 3Puis ouvrir le port sur le firewall HAProxy :
sudo firewall-cmd --permanent --add-port=8140/tcp
sudo firewall-cmd --reload
sudo systemctl reload haproxyOption 2 : Accès direct au serveur Foreman pour Puppet
Si vous ne voulez pas passer par HAProxy pour Puppet, créer un enregistrement DNS séparé :
foreman.mondomaine.com A <IP_HAPROXY> # Pour WebUI et Smart Proxy
puppet.mondomaine.com A <IP_SERVEUR_FOREMAN> # Pour Puppet ServerEt modifier la configuration Puppet des clients :
[main]
certname = client.mondomaine.com
server = puppet.mondomaine.com # Accès direct au serveur Foreman
ca_server = puppet.mondomaine.com
environment = production
runinterval = 30mPremier run avec l'option 1 (HAProxy pour Puppet)
# Premier run pour générer le certificat
sudo /opt/puppetlabs/bin/puppet agent --test
# Sur le serveur Foreman, lister les certificats en attente
sudo puppetserver ca list
# Signer le certificat du client
sudo puppetserver ca sign --certname client.mondomaine.com
# Ou signer tous les certificats en attente
sudo puppetserver ca sign --all
# Relancer l'agent sur le client
sudo /opt/puppetlabs/bin/puppet agent --test
5 Activation du service Puppet
# Activer et démarrer le service
sudo systemctl enable puppet
sudo systemctl start puppet
# Vérifier le statut
sudo systemctl status puppet
6 Sur un client Debian/Ubuntu
# Télécharger et installer le dépôt Puppet
wget https://apt.puppet.com/puppet7-release-$(lsb_release -cs).deb
sudo dpkg -i puppet7-release-$(lsb_release -cs).deb
sudo apt update
# Installer l'agent
sudo apt install -y puppet-agent
# Suivre les mêmes étapes de configuration que pour Rocky Linux
7 Sur un client Windows
- Télécharger l'installateur depuis : https://downloads.puppetlabs.com/windows/puppet7/
- Exécuter l'installateur
- Pendant l'installation, spécifier
foreman.mondomaine.comcomme serveur Puppet - Après installation, ouvrir PowerShell en administrateur :
# Premier run
puppet agent --test
# Activer le service
Set-Service -Name puppet -StartupType Automatic
Start-Service -Name puppet