1. Installation du serveur Foreman (mono-nœud)
1.1 Préparation du système
# Mise à jour du système
sudo dnf update -y
# Installation des dépendances de base
sudo dnf install -y epel-release
sudo dnf install -y vim wget curl net-tools
# Configuration du hostname
sudo hostnamectl set-hostname foreman.mondomaine.com
# Vérification
hostnamectl
1.2 Configuration du fichier hosts
# Éditer /etc/hosts
sudo vim /etc/hosts
Ajouter :
127.0.0.1 localhost localhost.localdomain
<VOTRE_IP_SERVEUR> foreman.mondomaine.com foreman
1.3 Désactivation de SELinux (optionnel mais recommandé pour débuter)
sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config
Note : En production, il est préférable de configurer SELinux correctement plutôt que de le désactiver.
1.4 Configuration du firewall
# Autoriser les ports pour Foreman (backend)
# IMPORTANT : Le trafic viendra du serveur HAProxy, pas directement des clients
# Autoriser HTTP depuis HAProxy (le SSL est terminé sur HAProxy)
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=8443/tcp # Smart Proxy
# Puppet Server
sudo firewall-cmd --permanent --add-port=8140/tcp
# Services optionnels
sudo firewall-cmd --permanent --add-port=53/tcp # DNS (si activé)
sudo firewall-cmd --permanent --add-port=53/udp
sudo firewall-cmd --permanent --add-port=67-69/udp # DHCP/TFTP (si activé)
sudo firewall-cmd --reload
# Si vous souhaitez restreindre l'accès uniquement depuis HAProxy (recommandé) :
# sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="<IP_HAPROXY>" port port="80" protocol="tcp" accept'
# sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="<IP_HAPROXY>" port port="8443" protocol="tcp" accept'
# Remplacer <IP_HAPROXY> par l'IP réelle de votre serveur HAProxy
1.5 Installation des dépôts Foreman
# Activer le module Ruby 3.1
sudo dnf module enable ruby:3.1 -y
# Installer le dépôt Foreman 3.9 (dernière version stable)
sudo dnf install -y https://yum.theforeman.org/releases/3.9/el9/x86_64/foreman-release.rpm
# Installer le dépôt Puppet 7
sudo dnf install -y https://yum.puppet.com/puppet7-release-el-9.noarch.rpm
# Nettoyer le cache
sudo dnf clean all
1.6 Installation de Foreman avec l'installateur
# Installer le paquet foreman-installer
sudo dnf install -y foreman-installer
# Lancer l'installation avec les options de base
sudo foreman-installer \
--foreman-initial-organization "MonOrganisation" \
--foreman-initial-location "MonDatacenter" \
--foreman-initial-admin-username admin \
--foreman-initial-admin-password "MotDePasseSecurise" \
--enable-foreman-proxy \
--foreman-proxy-tftp true \
--foreman-proxy-dhcp false \
--foreman-proxy-dns false \
--enable-puppet \
--puppet-server true \
--puppet-server-foreman-url https://foreman.mondomaine.com
Important : Notez bien le mot de passe admin et les informations affichées en fin d'installation.
1.7 Vérification de l'installation
# Vérifier que les services sont actifs
sudo systemctl status foreman
sudo systemctl status httpd
sudo systemctl status puppetserver
sudo systemctl status foreman-proxy
# Tester l'accès local
curl -k https://localhost/