Aller au contenu

Installer Rudder 9.0 : serveur et agents

Mise à jour :

Logo rudder

Ce guide vous accompagne dans l’installation de Rudder, que ce soit pour un environnement de test local ou pour une mise en production. Nous verrons les deux approches : l’installation rapide avec Vagrant pour découvrir l’outil, et l’installation manuelle pour un déploiement réel.

Prérequis

Pour un environnement de test (recommandé pour débuter)

Si vous voulez simplement découvrir Rudder sans impacter votre infrastructure, vous avez besoin d’un environnement de virtualisation pour créer quelques machines.

Plusieurs options s’offrent à vous :

EnvironnementCas d’usageGuide
Proxmox VELab on-premise, homelabGuide Proxmox
Cloud publicAWS, GCP, Azure, Outscale…Créez 3 VMs (1 serveur + 2 nodes)
Poste localVirtualBox, VMware Workstation3 VMs manuelles

Dans ce guide, nous utiliserons Proxmox VE — une solution de virtualisation open-source très répandue dans les environnements DevOps et les homelabs.

Ressources nécessaires (3 VMs) :

  • RAM : 4 Go minimum (2 Go pour le serveur + 1 Go par node)
  • Disque : 20 Go par VM
  • Réseau : Les VMs doivent pouvoir communiquer entre elles

Pour une installation en production

Serveur Rudder :

  • OS supportés : Debian 11/12, Ubuntu 22.04/24.04 LTS, RHEL 8/9 et dérivés
  • RAM : 4 Go minimum, 8 Go recommandés pour 100+ nodes
  • CPU : 2 vCPU minimum
  • Disque : 50 Go minimum sur /var (les données Rudder peuvent grossir rapidement)
  • Réseau : Port 443 (HTTPS) ouvert pour les agents

Agents Rudder :

  • OS supportés : Debian, Ubuntu, RHEL/CentOS/Rocky, SLES, Alpine, Windows Server
  • RAM : 50 Mo (l’agent est très léger)
  • Réseau : Accès HTTPS au serveur Rudder

Flux réseau et pare-feu

Configurez vos pare-feux pour autoriser ces flux :

SourceDestinationPortUsage
Utilisateur / APIServeurtcp/443Interface web, API
NodeServeur/Relaytcp/443Rapports, inventaires, fichiers
Node LinuxServeur/Relaytcp/5309Récupération des politiques
Node WindowsServeur/Relaytcp/443Récupération des politiques
Serveur/RelayNode Linuxtcp/5309Déclenchement distant de l’agent (optionnel)

Création de l’environnement de test

Pour ce guide, nous allons créer 3 machines virtuelles dans Proxmox :

VMRôleOSRAMCPU
rudder-serverServeur RudderUbuntu 24.042 Go2 vCPU
node1Agent à gérerUbuntu 24.041 Go1 vCPU
node2Agent à gérerRocky Linux 91 Go1 vCPU

Création des VMs dans Proxmox

  1. Téléchargez les images ISO

    Dans Proxmox, allez dans local (storage) → ISO Images → Download from URL :

    • Ubuntu 24.04 Server : https://releases.ubuntu.com/24.04/ubuntu-24.04.3-live-server-amd64.iso
    • Rocky Linux 9 : https://download.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9-latest-x86_64-minimal.iso
  2. Créez la VM serveur (rudder-server)

    • Create VM → Donnez-lui l’ID 100 et le nom rudder-server
    • OS : Sélectionnez l’ISO Ubuntu 24.04
    • System : BIOS par défaut, SCSI Controller VirtIO
    • Disks : 20 Go minimum
    • CPU : 2 cores
    • Memory : 2048 Mo
    • Network : Bridge vmbr0 (ou votre bridge habituel)
  3. Créez les VMs nodes (node1, node2)

    Répétez l’opération avec 1 Go de RAM et 1 vCPU pour chaque node. Utilisez Ubuntu 24.04 pour node1 et Rocky Linux 9 pour node2 (pour tester la compatibilité entre familles Debian et Red Hat).

  4. Installez les OS

    Démarrez chaque VM et suivez l’installation standard. Notez les adresses IP attribuées (ou configurez des IPs statiques).

  5. Configurez la résolution DNS

    Sur chaque machine, ajoutez les entrées dans /etc/hosts :

    Terminal window
    # Remplacez par vos IPs réelles
    echo "192.168.1.100 rudder-server" >> /etc/hosts
    echo "192.168.1.101 node1" >> /etc/hosts
    echo "192.168.1.102 node2" >> /etc/hosts

Installation manuelle en production

Pour un déploiement réel, suivez ces étapes sur vos serveurs.

Installation du serveur Rudder

Terminal window
sudo -i
# 1. Importer la clé GPG de Rudder
wget -qO /etc/apt/keyrings/rudder_apt_key.gpg \
"https://repository.rudder.io/apt/rudder_apt_key.gpg"
# 2. Ajouter le dépôt
# Codenames : bookworm (Debian 12), trixie (Debian 13), noble (Ubuntu 24.04)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/rudder_apt_key.gpg] \
http://repository.rudder.io/apt/9.0/ $(lsb_release -cs) main" \
> /etc/apt/sources.list.d/rudder.list
# 3. Mettre à jour et installer
apt update
apt install -y rudder-server
# 4. Créer le compte administrateur
rudder server create-user -u admin

Vérification :

Terminal window
# Vérifier que les services tournent
systemctl status rudder-jetty
systemctl status rudder-slapd
systemctl status postgresql
# Accéder à l'interface
curl -k https://localhost/rudder/

Configuration réseau post-installation

Ouvrez votre navigateur et connectez-vous à l’interface web de Rudder :

https://<IP_SERVEUR>/rudder/

Après l’installation, configurez les réseaux autorisés pour les agents :

  1. Allez dans Settings → General → Allowed Networks
  2. Ajoutez les plages IP de vos nodes (ex: 192.168.1.0/24)
  3. Sauvegardez

Installation des agents

Rudder propose deux dépôts pour les agents :

DépôtURLAccèsDistributions
Communautairerepository.rudder.ioGratuitDebian 11/12/13, Ubuntu 24.04, RHEL 8/9, Amazon Linux 2023
Souscriptiondownload.rudder.ioPayantSupport LTS + Ubuntu 20.04/22.04, Amazon Linux 1/2

Sur chaque machine à gérer :

Pour Debian 11/12/13, Ubuntu 24.04, RHEL 8/9, Amazon Linux 2023 :

Terminal window
# Installation via le script officiel (le plus simple)
curl https://repository.rudder.io/tools/rudder-setup | \
bash -s setup-agent 9.0 <SERVEUR_RUDDER>
# Remplacez <SERVEUR_RUDDER> par l'IP ou le FQDN de votre serveur
# Exemple : bash -s setup-agent 9.0 rudder.example.com

Vérification sur l’agent :

Terminal window
# Informations sur l'agent
rudder agent info
# Forcer l'envoi de l'inventaire
rudder agent inventory

Acceptation des nodes

Les nouveaux agents apparaissent en “Pending” et doivent être acceptés :

Via l’interface web :

  1. Allez dans Node Management → Pending Nodes
  2. Cochez les nodes à accepter
  3. Cliquez sur Accept

Acceptation des nodes dans l'interface Rudder

Faites cela pour chaque node installé.

Gestion des nodes

Une fois acceptés, les nodes apparaissent dans la liste des nodes gérés. Vous pouvez maintenant surveiller leur état.

Liste des nodes gérés dans Rudder

Nous verrons la gestion des politiques dans un prochain guide.

Dépannage

L’agent ne se connecte pas au serveur

Symptôme : L’agent n’apparaît pas dans les “Pending Nodes”.

Vérifications :

Terminal window
# Sur l'agent : vérifier la connectivité
curl -k https://<serveur>:443/
# Vérifier le fichier de configuration
cat /var/rudder/cfengine-community/policy_server.dat
# Vérifier les logs
journalctl -u rudder-agent -f
# Forcer l'inventaire
rudder agent inventory -v

Causes fréquentes :

  • Pare-feu bloquant le port 443
  • Résolution DNS incorrecte du serveur
  • Certificat SSL non accepté

Le serveur ne peut pas déclencher l’agent à distance

Symptôme : error: Failed to connect to host: node2.example.com

Cette erreur apparaît quand le serveur tente un « remote run » mais ne peut pas joindre le node sur le port 5309.

Vérifications :

Terminal window
# Depuis le serveur : tester la connectivité au node
nc -zv node2.example.com 5309
# Vérifier la résolution DNS
ping node2.example.com

Solutions :

Terminal window
# Option 1 : Ouvrir le port 5309 sur le node (firewalld)
sudo firewall-cmd --permanent --add-port=5309/tcp
sudo firewall-cmd --reload
# Option 1 : Ouvrir le port 5309 sur le node (ufw)
sudo ufw allow from <IP_SERVEUR_RUDDER> to any port 5309 proto tcp
# Option 2 : Désactiver le remote run sur le node (si non nécessaire)
sudo systemctl disable rudder-cf-serverd
sudo systemctl stop rudder-cf-serverd
sudo systemctl restart rudder-agent

Le serveur ne démarre pas

Terminal window
# Vérifier les services
systemctl status rudder-jetty
systemctl status postgresql
systemctl status rudder-slapd
# Consulter les logs
journalctl -u rudder-jetty -n 100
tail -f /var/log/rudder/webapp/webapp.log
# Vérifier la mémoire
free -h
# **Rudder** a besoin d'au moins 2 Go de RAM

Les politiques ne s’appliquent pas

Terminal window
# Sur le serveur : régénérer les politiques
rudder server regenerate-policies
# Sur l'agent : forcer l'exécution
rudder agent run -v
# Vérifier la date de dernière mise à jour
rudder agent info | grep "Policy updated"

Optimisation pour la production

Partitionnement recommandé

Pour éviter que Rudder ne remplisse /var :

/var/rudder → 20 Go minimum (politiques, inventaires)
/var/lib/postgresql → 30 Go minimum (base de données)
/var/log/rudder → 10 Go (logs)

Tuning mémoire

Pour un serveur gérant plus de 100 nodes, augmentez la mémoire JVM :

Terminal window
# Éditer /etc/default/rudder-jetty
JAVA_XMX=4096 # 4 Go pour ~500 nodes

Sauvegardes

Les données critiques à sauvegarder :

  • /var/rudder/ — Configurations et inventaires
  • Base PostgreSQL — pg_dump rudder
  • /opt/rudder/etc/ — Configuration du serveur

Chemins importants à connaître

Sur le serveur :

  • /var/rudder/configuration-repository — Dépôt Git des politiques (versionné !)
  • /var/log/rudder/webapp/YYYY_MM_DD.stderrout.log — Logs de l’application web
  • /var/log/rudder/compliance/non-compliant-reports — Rapports de non-conformité

Sur les nodes :

  • /opt/rudder/etc/policy_server.dat — Adresse du serveur Rudder
  • /var/rudder/local/properties.d/*.json — Override local des propriétés

À retenir

  1. Deux méthodes d’installation : Proxmox pour tester, installation manuelle pour la production
  2. Version actuelle : 9.0 (vérifiez docs.rudder.io pour la dernière version)
  3. Port par défaut : 443 (HTTPS) pour la communication serveur-agents
  4. Création d’utilisateur obligatoire après installation du serveur (rudder server create-user)
  5. Acceptation des nodes nécessaire avant de pouvoir les configurer
  6. CLI puissante pour automatiser les tâches administratives

Guides de cette série