Set-OPS-Public/playbooks/groupes/client_sante.yml

40 lines
1.4 KiB
YAML
Raw Normal View History

supervision : systemctl --failed entre dans Icinga (role client_sante) CE QU IL FERME. openipmi.service echouait a chaque demarrage sur les quatorze machines depuis le 2026-09-02, et systemctl --failed rendait ZERO partout : non parce qu elles allaient bien, mais parce qu aucune n avait redemarre depuis. Il a fallu qu un humain redemarre une machine pour que le defaut existe aux yeux de quelqu un. Un controle qui ne peut echouer qu au demarrage ne mesure rien tant que rien ne demarre. PASSIF, ET A DUREE DE VIE. Un controle actif ne voit pas la machine MUETTE. Ici c est le noeud qui parle, et le ttl de son envoi fait la fraicheur : sans nouvelle, Icinga perime le service tout seul. Le silence alerte autant que l echec. Le minuteur declenche AU DEMARRAGE autant que toutes les 15 min : les echecs de cette famille naissent au boot. CRITIQUE DES LA PREMIERE UNITE, jamais un seuil — une unite en echec est soit un vrai probleme soit du bruit a retirer, et un seuil ferait vivre le bruit. Les tolerances se nomment une par une, vide par defaut. CONTROLE NEGATIF. Unite factice sur obs-01, etat relu dans IcingaDB : CRITICAL, et le verdict NOMME l unite. Les treize autres OK. Apres nettoyage : 14/14 OK. UN CONFLIT EVITE. setops-sauvegardes.conf definissait les object Host ; un second fichier de controle aurait redefini les memes, et Icinga refuse un objet en double — la configuration entiere aurait ete rejetee, donc AUCUNE supervision, en voulant en ajouter. Les hotes vivent maintenant dans setops-hotes.conf, definis une fois. TROIS OBSTACLES. ${#tableau[@]} contient {# que Jinja lit comme un debut de commentaire (remede : comment_start_string en tete du gabarit). Ma premiere sonde a traduit un 403 « Missing permission: objects/query/service » en « 0 service » — encore un echec qui ecrasait permission ; l etat se lit dans IcingaDB. Et un echec apt transitoire sur mon-01, local et disparu au second essai : mesure avant conclusion. NON FAIT : le SITE n a pas recu client_sante. make prouver : CONFORME, 63 OK, 0 echec, 0 saute. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-09 20:32:08 -04:00
---
# client_sante — L'ORDRE FAIT PARTIE DE L'INTEGRATION.
#
# Cette integration depend de `serveur_icinga`, et sa metadonnee le declare
# (`roles/client_sante/meta/integration.yml`). L'hote qui PORTE la supervision est donc
# configure AVANT ceux qui lui rapportent — sinon les noeuds poussent un resultat passif
# vers une API qui n'existe pas encore, et le premier verdict de chaque machine est un
# echec qui accuse le reseau.
#
# Ce fichier est le miroir de la declaration ; la preuve P44 refuse tout ecart.
#
# `any_errors_fatal` sur le premier play : si la supervision n'a pas pu etre configuree,
# y raccrocher des rapporteurs ne produit que du bruit.
- name: Intégration client_sante — le serveur d'abord
hosts: client_sante:&serveur_icinga
become: true
any_errors_fatal: true
module_defaults: &defauts_sante
ansible.builtin.apt:
lock_timeout: 300
gather_facts: true
pre_tasks: &pre_sante
- name: Vérifier que la cible est Debian
ansible.builtin.assert:
that:
- ansible_facts.distribution == "Debian"
fail_msg: "Ce playbook est prévu pour Debian."
roles:
- client_sante
- name: Intégration client_sante — puis les hôtes qui s'y adressent
hosts: client_sante:!serveur_icinga
become: true
module_defaults: *defauts_sante
gather_facts: true
pre_tasks: *pre_sante
roles:
- client_sante