Rendre le dry-run (--check) fiable sur les rôles applicatifs

« Vérifier » échouait faussement sur un hôte frais : les tâches
« démarrer service » et les handlers restart/reload/validate touchent
un paquet que --check n'installe pas vraiment → service/fichier absent
→ faux fatal, qui bloquait le déploiement (le dry-run doit passer pour
débloquer « Déployer »).

Ajout de « when: not ansible_check_mode » sur ces tâches + handlers des
13 rôles serveur_* (29 gardes). Sautées en dry-run, inchangées en réel.
Validé : powerdns dry-run failed=0 ; ansible-lint 0 échec ; 19 playbooks
syntax-OK.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Daniel Allaire 2026-07-01 21:01:53 -04:00
parent 213724f566
commit f82630de6c
26 changed files with 42 additions and 0 deletions

View file

@ -15,6 +15,13 @@
- **Compteur « vivantes »** dans l'en-tête (depuis la sonde), à côté de actifs/planifiés. - **Compteur « vivantes »** dans l'en-tête (depuis la sonde), à côté de actifs/planifiés.
### Corrigé ### Corrigé
- **« Vérifier » (dry-run `--check`) échouait faussement sur un hôte frais.** Les tâches
« démarrer service » et les handlers « redémarrer / recharger / valider » des rôles
applicatifs touchent un paquet que `--check` n'installe pas réellement → le service
(ou le fichier de zone/conf) n'existe pas encore → faux `fatal`, qui **bloquait le
déploiement** (le dry-run doit réussir pour débloquer « Déployer »). Ajout de
`when: not ansible_check_mode` sur ces tâches et handlers des 13 rôles `serveur_*`
(29 gardes). En dry-run elles sont sautées ; en vrai déploiement, inchangées.
- **Le bouton ⚙ « Appliquer le plan » du GUI refusait en silence** dès que le plan - **Le bouton ⚙ « Appliquer le plan » du GUI refusait en silence** dès que le plan
divergeait de l'inventaire (il appelait `instancier appliquer` **sans** `--force`). divergeait de l'inventaire (il appelait `instancier appliquer` **sans** `--force`).
Résultat : après une édition (disque, état, auto-actif), l'inventaire n'était jamais Résultat : après une édition (disque, état, auto-actif), l'inventaire n'était jamais

View file

@ -1,5 +1,6 @@
--- ---
- name: Redemarrer forgejo - name: Redemarrer forgejo
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_forgejo_service }}" name: "{{ serveur_forgejo_service }}"
state: restarted state: restarted

View file

@ -104,6 +104,7 @@
notify: Redemarrer forgejo notify: Redemarrer forgejo
- name: Activer et demarrer Forgejo - name: Activer et demarrer Forgejo
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_forgejo_service }}" name: "{{ serveur_forgejo_service }}"
enabled: true enabled: true

View file

@ -1,5 +1,6 @@
--- ---
- name: Redemarrer grafana - name: Redemarrer grafana
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_grafana_service }}" name: "{{ serveur_grafana_service }}"
state: restarted state: restarted

View file

@ -61,6 +61,7 @@
notify: Redemarrer grafana notify: Redemarrer grafana
- name: Activer et demarrer Grafana - name: Activer et demarrer Grafana
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_grafana_service }}" name: "{{ serveur_grafana_service }}"
enabled: true enabled: true

View file

@ -1,11 +1,13 @@
--- ---
- name: Redemarrer icinga2 - name: Redemarrer icinga2
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_icinga_service_icinga2 }}" name: "{{ serveur_icinga_service_icinga2 }}"
state: restarted state: restarted
listen: Redemarrer icinga2 listen: Redemarrer icinga2
- name: Redemarrer icingadb - name: Redemarrer icingadb
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_icinga_service_icingadb }}" name: "{{ serveur_icinga_service_icingadb }}"
state: restarted state: restarted

View file

@ -65,6 +65,7 @@
notify: Redemarrer icinga2 notify: Redemarrer icinga2
- name: Activer et demarrer le Redis Icinga DB - name: Activer et demarrer le Redis Icinga DB
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_icinga_service_redis }}" name: "{{ serveur_icinga_service_redis }}"
enabled: true enabled: true
@ -91,6 +92,7 @@
notify: Redemarrer icingadb notify: Redemarrer icingadb
- name: Activer et demarrer Icinga 2 et Icinga DB - name: Activer et demarrer Icinga 2 et Icinga DB
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ item }}" name: "{{ item }}"
enabled: true enabled: true

View file

@ -1,5 +1,6 @@
--- ---
- name: Redemarrer keycloak - name: Redemarrer keycloak
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_keycloak_service }}" name: "{{ serveur_keycloak_service }}"
state: restarted state: restarted

View file

@ -122,6 +122,7 @@
notify: Redemarrer keycloak notify: Redemarrer keycloak
- name: Activer et demarrer keycloak - name: Activer et demarrer keycloak
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_keycloak_service }}" name: "{{ serveur_keycloak_service }}"
enabled: true enabled: true

View file

@ -1,5 +1,6 @@
--- ---
- name: Redemarrer loki - name: Redemarrer loki
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_loki_service }}" name: "{{ serveur_loki_service }}"
state: restarted state: restarted

View file

@ -45,6 +45,7 @@
notify: Redemarrer loki notify: Redemarrer loki
- name: Activer et demarrer Loki - name: Activer et demarrer Loki
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_loki_service }}" name: "{{ serveur_loki_service }}"
enabled: true enabled: true

View file

@ -1,11 +1,13 @@
--- ---
- name: Valider la configuration nginx - name: Valider la configuration nginx
when: not ansible_check_mode
ansible.builtin.command: ansible.builtin.command:
cmd: nginx -t cmd: nginx -t
changed_when: false changed_when: false
listen: Valider et recharger nginx listen: Valider et recharger nginx
- name: Recharger nginx - name: Recharger nginx
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_nginx_service_name }}" name: "{{ serveur_nginx_service_name }}"
state: reloaded state: reloaded

View file

@ -79,6 +79,7 @@
notify: Valider et recharger nginx notify: Valider et recharger nginx
- name: Activer et demarrer nginx - name: Activer et demarrer nginx
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_nginx_service_name }}" name: "{{ serveur_nginx_service_name }}"
enabled: true enabled: true

View file

@ -41,6 +41,7 @@
cache_valid_time: 3600 cache_valid_time: 3600
- name: Activer et demarrer slapd - name: Activer et demarrer slapd
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_openldap_service }}" name: "{{ serveur_openldap_service }}"
enabled: true enabled: true

View file

@ -1,10 +1,12 @@
--- ---
- name: Recharger PostgreSQL - name: Recharger PostgreSQL
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_postgresql_service_name }}" name: "{{ serveur_postgresql_service_name }}"
state: reloaded state: reloaded
- name: Redemarrer PostgreSQL - name: Redemarrer PostgreSQL
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_postgresql_service_name }}" name: "{{ serveur_postgresql_service_name }}"
state: restarted state: restarted

View file

@ -56,6 +56,7 @@
notify: Recharger PostgreSQL notify: Recharger PostgreSQL
- name: Activer et demarrer PostgreSQL - name: Activer et demarrer PostgreSQL
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_postgresql_service_name }}" name: "{{ serveur_postgresql_service_name }}"
enabled: true enabled: true

View file

@ -3,10 +3,12 @@
ansible.builtin.command: ansible.builtin.command:
cmd: "named-checkzone {{ serveur_powerdns_zone }} {{ serveur_powerdns_zone_directory }}/{{ serveur_powerdns_zone }}.zone" cmd: "named-checkzone {{ serveur_powerdns_zone }} {{ serveur_powerdns_zone_directory }}/{{ serveur_powerdns_zone }}.zone"
changed_when: false changed_when: false
when: not ansible_check_mode # en dry-run le fichier de zone n'existe pas encore
listen: Validate and reload PowerDNS listen: Validate and reload PowerDNS
- name: Restart PowerDNS - name: Restart PowerDNS
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_powerdns_service_name }}" name: "{{ serveur_powerdns_service_name }}"
state: restarted state: restarted
when: not ansible_check_mode # en dry-run le service n'existe pas encore
listen: Validate and reload PowerDNS listen: Validate and reload PowerDNS

View file

@ -46,3 +46,7 @@
name: "{{ serveur_powerdns_service_name }}" name: "{{ serveur_powerdns_service_name }}"
enabled: true enabled: true
state: started state: started
# Dry-run (--check) : le paquet n'est pas reellement installe, donc le service
# n'existe pas encore et systemd echouerait. On saute en mode check seulement ;
# en vrai deploiement, la tache s'execute normalement.
when: not ansible_check_mode

View file

@ -1,11 +1,13 @@
--- ---
- name: Valider la configuration prometheus - name: Valider la configuration prometheus
when: not ansible_check_mode
ansible.builtin.command: ansible.builtin.command:
cmd: "promtool check config {{ serveur_prometheus_config }}" cmd: "promtool check config {{ serveur_prometheus_config }}"
changed_when: false changed_when: false
listen: Valider et recharger prometheus listen: Valider et recharger prometheus
- name: Redemarrer prometheus - name: Redemarrer prometheus
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_prometheus_service }}" name: "{{ serveur_prometheus_service }}"
state: restarted state: restarted

View file

@ -25,6 +25,7 @@
notify: Valider et recharger prometheus notify: Valider et recharger prometheus
- name: Activer et demarrer Prometheus - name: Activer et demarrer Prometheus
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_prometheus_service }}" name: "{{ serveur_prometheus_service }}"
enabled: true enabled: true

View file

@ -1,5 +1,6 @@
--- ---
- name: Redemarrer redis - name: Redemarrer redis
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_redis_service }}" name: "{{ serveur_redis_service }}"
state: restarted state: restarted

View file

@ -31,6 +31,7 @@
notify: Redemarrer redis notify: Redemarrer redis
- name: Activer et demarrer Redis - name: Activer et demarrer Redis
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_redis_service }}" name: "{{ serveur_redis_service }}"
enabled: true enabled: true

View file

@ -1,11 +1,13 @@
--- ---
- name: Verifier la configuration Postfix - name: Verifier la configuration Postfix
when: not ansible_check_mode
ansible.builtin.command: ansible.builtin.command:
cmd: postfix check cmd: postfix check
changed_when: false changed_when: false
listen: Valider et recharger postfix listen: Valider et recharger postfix
- name: Recharger postfix - name: Recharger postfix
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_sendmail_service_name }}" name: "{{ serveur_sendmail_service_name }}"
state: reloaded state: reloaded

View file

@ -28,6 +28,7 @@
notify: Valider et recharger postfix notify: Valider et recharger postfix
- name: Activer et demarrer Postfix - name: Activer et demarrer Postfix
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_sendmail_service_name }}" name: "{{ serveur_sendmail_service_name }}"
enabled: true enabled: true

View file

@ -1,5 +1,6 @@
--- ---
- name: Redemarrer step-ca - name: Redemarrer step-ca
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_step_ca_service }}" name: "{{ serveur_step_ca_service }}"
state: restarted state: restarted

View file

@ -101,6 +101,7 @@
notify: Redemarrer step-ca notify: Redemarrer step-ca
- name: Activer et demarrer step-ca - name: Activer et demarrer step-ca
when: not ansible_check_mode
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ serveur_step_ca_service }}" name: "{{ serveur_step_ca_service }}"
enabled: true enabled: true