Set-OPS-Public/roles/resoudre_annuaire
Daniel Allaire 8260f2f914 annuaire : l'hote se derive du plan, il ne s'ecrit plus
`resoudre_annuaire` fixait `id-ldap-01` en dur — une machine qui n'existe dans
aucun plan. Postfix ne pouvait pas se lier : « Can't contact LDAP server ».

L'intention etait juste et son commentaire le disait : un seul point ou le nom
est fixe, au lieu d'etre repete dans chaque role. Mais ECRIT au lieu d'etre
derive. Une valeur unique et fausse vaut mieux qu'une valeur repetee et fausse ;
elle reste fausse.

Le plan le declare (`applications.openldap.hote`) : c'est de la qu'elle vient.

infra-mail-01 et edge-mta-01 deployees, 19 playbooks sans un echec. LMTP en TLS
verifie, mynetworks sur le supernet derive, liaison LDAP etablie vers idm-01.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 12:46:48 -04:00
..
defaults annuaire : l'hote se derive du plan, il ne s'ecrit plus 2026-08-07 12:46:48 -04:00
tasks annuaire : l'hote se derive du plan, il ne s'ecrit plus 2026-08-07 12:46:48 -04:00
README.md docs : un README par rôle (12 manquants) + carte remise à l'état du code 2026-07-29 11:32:06 -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 id-ldap-01 Le point où le nom d'hôte est fixé (surchargeable par instance)
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.bdc=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).