# Installation de l'agent Puppet sur les nœuds clients

### 1 Installation sur EL9

```bash
# 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

```bash
# Éditer la configuration Puppet
sudo vim /etc/puppetlabs/puppet/puppet.conf
```

Ajouter/modifier dans la section `[main]` :

```ini
[main]
certname = client.mondomaine.com
server = foreman.mondomaine.com
environment = production
runinterval = 30m
```

### 3 Configuration du fichier hosts sur le client 

```bash
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

```bash
# 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

```bash
# 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

```bash
# 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

1. Télécharger l'installateur depuis : [https://downloads.puppetlabs.com/windows/puppet7/](https://downloads.puppetlabs.com/windows/puppet7/)
2. Exécuter l'installateur
3. Pendant l'installation, spécifier `foreman.mondomaine.com` comme serveur Puppet
4. Après installation, ouvrir PowerShell en administrateur :

```powershell
# Premier run
puppet agent --test

# Activer le service
Set-Service -Name puppet -StartupType Automatic
Start-Service -Name puppet
```