Skip to main content

1. Installation du serveur Foreman (mono-nœud)

1.1 Préparation du système

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

bash
# É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)

bash
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

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

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

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

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