Set-OPS-Public/roles/client_pki/handlers/main.yml
Daniel Allaire 41413c7f04 deploiement : deux attentes de premier demarrage, et trois defauts leves
`idm-01` a prouve le routage inter-zone dans le VRF (10.27.19.21 -> 10.27.17.11,
deux passerelles anycast) et leve trois defauts qu'aucun devis ne pouvait
montrer :

1. Le handler de `client_pki` rechargeait `slapd` avant son installation —
   consequence directe de l'ordre retabli. Un consommateur absent n'est pas une
   erreur ; un vrai echec de rechargement reste fatal.

2. `resoudre_base` ne trouvait aucune base de portee `application` : Keycloak
   declare `consommateur: keycloak`, le role cherchait `serveur_keycloak`. Le
   lien est declare dans applications.yml — on le suit au lieu de retirer un
   prefixe a la main.

3. Keycloak attend PostgreSQL, pas encore deploye. Pas un defaut : `deployer`
   ne connait que l'ordre intra-hote, l'ordre inter-hotes est celui de `site`.

Et deux attentes, sans lesquelles on ne peut pas enchainer creation et
deploiement — donc sans lesquelles `myDay` ne reconstruit pas seul : SSH, puis
cloud-init et les maj automatiques. `creer-vm` rend desormais une VM PRETE.
`lock_timeout: 300` sur chaque tache apt complete l'attente : le verrou peut
etre repris ENTRE deux taches, ce qu'une verification en amont ne previent pas.

Defaut dans l'attente elle-meme : `unattended-upgrades` est un demon, toujours
actif — l'inclure rendait la condition impossible a satisfaire.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 09:30:48 -04:00

28 lines
1.1 KiB
YAML

---
- name: Recharger systemd
ansible.builtin.systemd:
daemon_reload: true
listen: Recharger systemd
# Apres une re-emission du cert (ex: nouveau SAN), recharger les services qui le
# servent (nginx, postfix, slapd...) sinon ils continuent de servir l'ancien cert.
#
# Un consommateur PAS ENCORE INSTALLE n'est pas une erreur : `client_pki` s'execute
# AVANT les services (couches de deploiement), donc `slapd` n'existe pas quand l'hote
# recoit son premier certificat. Le service prendra le cert deja pose a son
# installation. On ne tait que ce cas precis — un vrai echec de rechargement doit
# rester fatal, sinon un service continuerait a servir un certificat perime en silence.
- name: Recharger les consommateurs du cert
ansible.builtin.systemd:
name: "{{ item }}"
state: reloaded
loop: "{{ client_pki_reload_services }}"
loop_control:
label: "{{ item }}"
register: client_pki_rechargements
failed_when:
- client_pki_rechargements is failed
- "'Could not find the requested service' not in (client_pki_rechargements.msg | default(''))"
when:
- not ansible_check_mode
- client_pki_reload_services | length > 0