resoudre_annuaire : un plan muet fait refuser, plus de nom devine
Le defaut `id-ldap-01` tenait des que le plan se taisait : la derivation depuis `applications.<app>.hote` etait sautee, et le role batissait `ldaps://<ce nom>` — une machine qui n est dans aucun plan. Le consommateur echouait au premier bind, apres un deploiement passe au vert de bout en bout. La derivation avait ete ajoutee pour corriger exactement cela ; le defaut est reste et ramenait l ancien comportement. Il est desormais vide, et une assertion refuse AU DEPLOIEMENT. Une instance garde le droit de poser l hote explicitement : ce qui disparait est la valeur DEVINEE, pas la surcharge. Assisted-by: Claude Opus 5
This commit is contained in:
parent
fbd4094d3f
commit
bff1396af3
3 changed files with 25 additions and 2 deletions
|
|
@ -32,7 +32,7 @@ d'annuaire.
|
|||
## Variables
|
||||
| Variable | Défaut | Rôle |
|
||||
| --- | --- | --- |
|
||||
| `resoudre_annuaire_hote` | `id-ldap-01` | **Le** point où le nom d'hôte est fixé (surchargeable par instance) |
|
||||
| `resoudre_annuaire_hote` | `""` | Dérivé du PLAN (`applications.<app>.hote`) ; surchargeable par instance. Vide et non dérivé, le rôle REFUSE plutôt que de deviner |
|
||||
| `resoudre_annuaire_port` | `636` | Port LDAPS |
|
||||
| `resoudre_annuaire_encryption` | `ldaps` | Schéma de l'URI |
|
||||
| `resoudre_annuaire_bind_cn` | `admin` | CN du compte de bind |
|
||||
|
|
|
|||
|
|
@ -5,7 +5,19 @@
|
|||
# aucune machine du plan (l'annuaire vit sur `idm-01`), et Postfix ne pouvait pas se lier.
|
||||
# Constaté le 2026-08-07. Le repli ci-dessous ne sert que si le plan est muet.
|
||||
resoudre_annuaire_app: "openldap"
|
||||
resoudre_annuaire_hote: "id-ldap-01"
|
||||
# VIDE, ET C'EST LE DEFAUT LUI-MEME QUI ETAIT LE PIEGE. Un nom ecrit ici tient des
|
||||
# que le plan se tait : la derivation est sautee, le role bâtit
|
||||
# `ldaps://<ce nom>.<domaine>`, et le consommateur echoue a l'execution sur
|
||||
# « Unable to bind » en nommant une machine qui n'est dans aucun plan.
|
||||
#
|
||||
# La correction qui a introduit la derivation depuis le plan a laisse ce defaut en
|
||||
# place ; il ramene donc l'ancien comportement chaque fois que l'application n'est
|
||||
# pas au plan. Vide, l'assertion qui suit refuse AU DEPLOIEMENT, la ou le nom
|
||||
# devine ne se voyait qu'au premier bind.
|
||||
#
|
||||
# Une instance garde le droit de le poser explicitement : ce qui disparait est la
|
||||
# valeur DEVINEE, pas la surcharge.
|
||||
resoudre_annuaire_hote: ""
|
||||
resoudre_annuaire_port: 636
|
||||
resoudre_annuaire_encryption: "ldaps"
|
||||
# COMPTE DE LIAISON — CHAQUE CONSOMMATEUR A LE SIEN (2026-09-13).
|
||||
|
|
|
|||
|
|
@ -37,6 +37,17 @@
|
|||
resoudre_annuaire_hote: "{{ (applications | default({})).get(resoudre_annuaire_app, {}).get('hote') }}"
|
||||
when: ((applications | default({})).get(resoudre_annuaire_app, {}).get('hote') | default('', true)) | length > 0
|
||||
|
||||
- name: Exiger que le plan nomme l'hôte de l'annuaire
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- resoudre_annuaire_hote | length > 0
|
||||
fail_msg: >-
|
||||
L'application « {{ resoudre_annuaire_app }} » n'est pas au plan, et aucune
|
||||
instance ne pose `resoudre_annuaire_hote` : rien ne nomme l'annuaire. Le rôle
|
||||
qui le demande ne peut pas s'y lier. Un nom deviné ici produirait
|
||||
« Unable to bind » sur une machine qui n'est dans aucun plan — et le
|
||||
déploiement passerait au VERT jusque-là.
|
||||
|
||||
# set_fact (pas les defaults) pour que ces valeurs persistent dans le rôle consommateur
|
||||
# après include_role (les defaults du rôle inclus ne fuient pas hors de son exécution).
|
||||
- name: Dériver la connexion à l'annuaire
|
||||
|
|
|
|||
Loading…
Reference in a new issue