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
2.2 KiB
2.2 KiB
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 endefaults) : 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_internenon vide (assertion). - LDAPS suppose la confiance step_ca posée par
client_pkisur le nœud consommateur.
Prérequis
domaine_internedéfini ; voûte déverrouillée (ANSIBLE_VAULT_PASSWORD_FILE).