Set-OPS-Public/roles/resoudre_annuaire
Mathieu Benoit bff1396af3 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
2026-09-29 04:16:02 -04:00
..
defaults resoudre_annuaire : un plan muet fait refuser, plus de nom devine 2026-09-29 04:16:02 -04:00
tasks resoudre_annuaire : un plan muet fait refuser, plus de nom devine 2026-09-29 04:16:02 -04:00
README.md resoudre_annuaire : un plan muet fait refuser, plus de nom devine 2026-09-29 04:16:02 -04:00

resoudre_annuaire

Rôle utilitaire (pas un groupe déployable) : dérive la connexion à l'annuaire interne (OpenLDAP) de façon déclarative, à partir du domaine_interne et de l'hôte d'annuaire.

Remplace le câblage LDAP qui était répété dans serveur_dovecot, serveur_postfix, serveur_keycloak et serveur_icingaweb2. Un seul endroit fixe le nom de l'hôte d'annuaire.

Usage

- name: Résoudre l'annuaire (rôle partagé)
  ansible.builtin.include_role:
    name: resoudre_annuaire

- name: Adopter la connexion annuaire pour <service>
  ansible.builtin.set_fact:
    <service>_ldap_uri: "{{ resoudre_annuaire_uri }}"
    <service>_ldap_base_dn: "{{ resoudre_annuaire_base_dn }}"

Sorties (facts, persistent après include_role)

Fact Exemple
resoudre_annuaire_fqdn id-ldap-01.exemple.internal
resoudre_annuaire_uri ldaps://id-ldap-01.exemple.internal
resoudre_annuaire_base_dn dc=exemple,dc=internal
resoudre_annuaire_users_dn ou=people,dc=exemple,dc=internal
resoudre_annuaire_bind_dn cn=admin,dc=exemple,dc=internal
resoudre_annuaire_bind_password Déréférencé de la voûte (no_log)

Variables

Variable Défaut Rôle
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
resoudre_annuaire_secret vault_openldap_admin Nom de la variable de voûte

Notes

  • Les sorties sont posées en set_fact (pas en defaults) : les defaults d'un rôle inclus ne survivent pas à la fin de son exécution, contrairement aux facts.
  • Le base DN est dérivé du domaine_interne (a.b → dc=a,dc=b) : aucun DN codé en dur.
  • Le rôle exige un domaine_interne non vide (assertion).
  • LDAPS suppose la confiance step_ca posée par client_pki sur le nœud consommateur.

Prérequis

  • domaine_interne défini ; voûte déverrouillée (ANSIBLE_VAULT_PASSWORD_FILE).