#!/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/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}."