--- - name: Préparer le template Debian 13 Proxmox # Le gabarit n'est pas un hote du tenant : son adresse vit sur le reseau de # fabrication, donc il ne peut pas venir du plan et le groupe `modeles_vm` reste vide. # `MODELE_HOTE` passe alors `cible_modele`, et l'inventaire d'un seul hote (`-i ","`) # place la machine dans `all` — PAS dans `modeles_vm`. Sans cette indirection, la # commande etait juste et la cible introuvable : « skipping: no hosts matched ». hosts: "{{ cible_modele | default('modeles_vm') }}" become: true gather_facts: true pre_tasks: - name: Vérifier que la cible est Debian ansible.builtin.assert: that: - ansible_facts.distribution == "Debian" fail_msg: "Ce playbook est prévu pour Debian." - name: Avertir si la version Debian n'est pas 13 ansible.builtin.debug: msg: "Attention : Debian {{ ansible_facts.distribution_version }} détecté. Le modèle cible est Debian 13." when: ansible_facts.distribution_major_version != "13" roles: - common_packages - qemu_guest_agent - cloud_init - sudo_ansible - chrony - ssh_baseline - systemd_ssh_auto - motd - hardening_packages - sysctl_hardening - core_dumps - unattended_upgrades - apparmor - auditd - fail2ban_ssh - journald - ssh_hardening - nftables_baseline post_tasks: - name: Afficher le statut cloud-init ansible.builtin.command: cloud-init status --long register: cloud_init_status changed_when: false failed_when: false - name: Résultat cloud-init ansible.builtin.debug: var: cloud_init_status.stdout_lines - name: Message final ansible.builtin.debug: msg: - "Préparation terminée." - "Redémarrer si GRUB a changé." - "Ne pas convertir avant le playbook de nettoyage final." - "nftables est installé mais désactivé par défaut."