Set-OPS-Public/roles/serveur_resolveur/templates/sonde-resolution.sh.j2
Daniel Allaire aab1bcc83a doc : rangee par lecteur, trois portes d'entree (architecture, setup, usage) et un index
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>
2026-10-15 01:01:54 -04:00

32 lines
1.4 KiB
Django/Jinja

#!/bin/bash
# GENERE par Set-OPS (role serveur_resolveur). Ne pas editer a la main.
#
# SONDE « resolution » — il resout la zone interne ET l'Internet
#
# Contrat : docs/conception/supervision-conception.md (API des greffons Nagios) — une ligne, 0/1/2.
# Mise en defaut PAR PARAMETRE : `serveur_resolveur_sonde_nom_interne` / `_nom_public` (noms inexistants).
set -uo pipefail
INTERNE={{ serveur_resolveur_sonde_nom_interne }}
PUBLIC={{ serveur_resolveur_sonde_nom_public }}
DELAI={{ serveur_resolveur_sonde_delai }}
# ON INTERROGE LA LOOPBACK, PAS `getent`. `getent` passerait par le plancher
# /etc/hosts et rendrait une reponse alors que le resolveur est mort — un vert sur un
# service eteint. On demande donc au demon lui-meme.
r1=$(dig +short +time=${DELAI} +tries=1 @127.0.0.1 "${INTERNE}" 2>/dev/null | head -1)
r2=$(dig +short +time=${DELAI} +tries=1 @127.0.0.1 "${PUBLIC}" 2>/dev/null | head -1)
if [[ -z "${r1}" && -z "${r2}" ]]; then
echo "Le resolveur ne repond ni pour ${INTERNE} ni pour ${PUBLIC} — il est muet."
exit 2
fi
if [[ -z "${r1}" ]]; then
echo "Zone interne MUETTE (${INTERNE}) — l'ecosysteme ne se resout plus lui-meme ; l'Internet repond (${PUBLIC} -> ${r2})."
exit 2
fi
if [[ -z "${r2}" ]]; then
echo "Recursion MUETTE (${PUBLIC}) — la zone interne repond (${INTERNE} -> ${r1}), mais rien du dehors."
exit 2
fi
echo "Resolution : ${INTERNE} -> ${r1}, ${PUBLIC} -> ${r2}."