openldap : la mesure d'un annuaire vierge ne meurt plus sur lui
Sur un annuaire vraiment vierge, grep -v ne gardait aucune ligne et sortait en 1 : pipefail faisait echouer la mesure dans le seul cas qu'elle doit reconnaitre. Comptage par awk. Trouve par la reconstruction de Chezlepro. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
515aac415a
commit
d9a8905fc7
1 changed files with 8 additions and 3 deletions
|
|
@ -57,12 +57,17 @@
|
|||
# L'ANNUAIRE EST-IL VIERGE ? Mesure AVANT que ce role n'y cree quoi que ce soit (unites,
|
||||
# comptes de service) : apres, il ne le serait plus jamais. Le paquet ne pose que la
|
||||
# racine — `cn=admin` n'y figure que sur les installations anciennes.
|
||||
#
|
||||
# `awk`, PAS `grep -v | wc -l` : sur un annuaire VRAIMENT vierge, `grep -v` ne garde aucune
|
||||
# ligne et sort en 1 — `pipefail` faisait alors echouer la mesure precisement dans le cas
|
||||
# qu'elle doit reconnaitre (reconstruction de Chezlepro, 2026-09-30).
|
||||
- name: Restauration — l'annuaire est-il vierge ?
|
||||
ansible.builtin.shell: >-
|
||||
set -o pipefail;
|
||||
slapcat -b '{{ serveur_openldap_base_dn }}' 2>/dev/null | grep '^dn:'
|
||||
| grep -v -i -x -e 'dn: {{ serveur_openldap_base_dn }}' -e 'dn: cn=admin,{{ serveur_openldap_base_dn }}'
|
||||
| wc -l
|
||||
slapcat -b '{{ serveur_openldap_base_dn }}' 2>/dev/null
|
||||
| awk -v base='dn: {{ serveur_openldap_base_dn | lower }}'
|
||||
'tolower($0) ~ /^dn: / && tolower($0) != base && tolower($0) != "dn: cn=admin," substr(base, 5) {n++}
|
||||
END {print n + 0}'
|
||||
args:
|
||||
executable: /bin/bash
|
||||
register: serveur_openldap_entrees_initiales
|
||||
|
|
|
|||
Loading…
Reference in a new issue