TP 4 : Playbook conditionnel multi-OS

Objectif

Écrire un playbook capable d’installer et de démarrer un serveur web sur deux familles d’OS différentes, en utilisant when et les facts pour adapter automatiquement les tâches — sans écrire deux playbooks séparés.

Environnement disponible

Vous disposez de :

  • 1 serveur de contrôle avec Ansible installé
  • 2 clients :
    • nrd-web1 (Debian 13)
    • nrd-alma1 (AlmaLinux 9)

Informations de connexion

  • Utilisateur : root
  • Mot de passe : formation

Ce que vous allez réaliser

  1. Configurer l’accès SSH par clé sur les deux clients
  2. Créer l’inventaire avec les deux hôtes
  3. Écrire un playbook unique qui installe Apache (Debian) ou Nginx (AlmaLinux) selon ansible_os_family
  4. Démarrer le bon service selon l’OS
  5. Exécuter le playbook et observer les tâches skipped selon la machine
  6. Vérifier avec ansible_facts que chaque machine a bien reçu le bon paquet

Conseils

  • Le nom du paquet web change selon l’OS (apache2 sur Debian, nginx sur AlmaLinux — httpd existe aussi sur AlmaLinux mais on utilise nginx ici pour bien marquer visuellement la différence dans les logs).
  • Le module de gestion des paquets change aussi : ansible.builtin.apt sur Debian, ansible.builtin.dnf sur AlmaLinux.
  • Une tâche non exécutée à cause d’un when faux apparaît en skipped, pas en erreur — c’est normal et attendu ici.