26 lines
1.2 KiB
Text
26 lines
1.2 KiB
Text
|
|
#!/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/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.
|
||
|
|
n=$(ldapsearch -x -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;"
|