README reduit au role du projet et au demarrage rapide. docs/architecture.md (schemas Mermaid), docs/setup.md, docs/usage.md (154 cibles en 13 familles), docs/README.md (index). Documents ranges en conception/, exploitation/, hebergement/, projet/ ; 598 chemins suivis. QUICKSTART.md, SOLUTION.md, architecture-set-ops.md et la carte fondus puis retires. Preuves : P48 lit l'index et conception/mecanismes.md ; les gardes parcourent docs/ sous- dossiers compris (_documents) ; usage.md suit le Makefile dans les deux sens. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
32 lines
1.8 KiB
Django/Jinja
32 lines
1.8 KiB
Django/Jinja
#!/bin/bash
|
|
# GENERE par Set-OPS (role serveur_openldap). Ne pas editer a la main.
|
|
#
|
|
# SONDE « annuaire » — l'annuaire repond ET contient ses entrees
|
|
#
|
|
# Contrat : docs/conception/supervision-conception.md (API des greffons Nagios) — une ligne, 0/1/2.
|
|
# Mise en defaut PAR PARAMETRE : `serveur_openldap_sonde_minimum` (seuil impossible).
|
|
set -uo pipefail
|
|
|
|
BASE={{ serveur_openldap_sonde_base }}
|
|
MINIMUM={{ serveur_openldap_sonde_minimum }}
|
|
|
|
systemctl is-active --quiet slapd || { echo "L'annuaire (slapd) n'est pas actif."; exit 2; }
|
|
|
|
# ON COMPTE LES ENTREES, ON NE SE CONTENTE PAS D'UNE REPONSE. Un annuaire vide repond
|
|
# `success` a tout — c'est exactement le mensonge des sauvegardes vides : vert, et sans
|
|
# contenu. Sans ce comptage, la sonde dirait « tout va bien » sur un annuaire efface.
|
|
# `-Y EXTERNAL`, PAS `-x` (2026-09-13). La sonde lisait en ANONYME. Ca marchait tant que
|
|
# l'annuaire etait ouvert a tous — c'est-a-dire tant qu'il avait le defaut qu'on vient de
|
|
# corriger. Une fois la lecture anonyme fermee, un `-x` ne compte plus rien et la sonde
|
|
# annonce un annuaire VIDE : la panne la plus grave, sur un annuaire parfaitement sain.
|
|
#
|
|
# `EXTERNAL` sur le socket unix identifie le root local, a qui les droits accordent la
|
|
# lecture. Aucun secret, aucun reseau — ce que doit rester une sonde.
|
|
n=$(ldapsearch -Y EXTERNAL -H ldapi:/// -b "${BASE}" -s sub '(objectClass=*)' dn 2>/dev/null | grep -c '^dn:')
|
|
[[ "${n}" =~ ^[0-9]+$ ]] || { echo "L'annuaire ne repond pas sous ${BASE}."; exit 2; }
|
|
|
|
if (( n < MINIMUM )); then
|
|
echo "Annuaire a ${n} entree(s) sous ${BASE}, moins que le minimum attendu (${MINIMUM}) — plus personne ne s'authentifiera.|entrees=${n};${MINIMUM};;0;"
|
|
exit 2
|
|
fi
|
|
echo "Annuaire : ${n} entree(s) sous ${BASE}.|entrees=${n};${MINIMUM};;0;"
|