- client_sante : tasks/retirer.yml, joué sur hyperviseurs:!client_sante ; le minuteur resté depuis le 2026-09-10 visait 10.0.36.11 et échouait toutes les 15 min (une unité en échec permanente par hyperviseur) - site_inventaire : plus de client_sante_icinga_url pour les hyperviseurs - client_journal : loki.process jette le bruit de la sonde connectivite, phrase exacte et seulement depuis une machine de client_sante - serveur_loki : log_level warn (Loki réingérait ses propres requêtes) - auditd : règle never pour adjtimex de node_exporter (35 % de l'audit) ; nouveau handler augenrules --load, un restart d'auditd ne rechargeait pas les règles sur Debian 13 - audit : rapport de preuves du 2026-10-03, carte à 51 pièces Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
48 lines
2.2 KiB
YAML
48 lines
2.2 KiB
YAML
---
|
|
# DEFAIRE CE QUE CE ROLE A POSE, SUR UN HOTE QUI N'EST PLUS DANS SON GROUPE (2026-10-03).
|
|
#
|
|
# Le cas qui l'a fait ecrire : les trois hyperviseurs du site. Ils ont recu `client_sante`
|
|
# le 2026-09-10, puis en sont sortis le jour meme — la route par defaut gelee (D-57)
|
|
# empeche un hyperviseur de joindre Icinga, et leurs metriques sont depuis TIREES par
|
|
# Prometheus (voir `scripts/site_inventaire.py`). Sortis du groupe, plus aucun play ne les
|
|
# touchait : le minuteur est reste, pointe sur `10.0.36.11`, l'adresse de `site-mon-01`
|
|
# d'avant la renumerotation.
|
|
#
|
|
# Mesure du 2026-10-03 : un echec toutes les 15 min depuis au moins sept jours, environ
|
|
# 2 050 par hyperviseur. Et `node_exporter` publiait sur chacun UNE unite en echec
|
|
# permanente — exactement ce que ce role refuse ailleurs (`client_sante_unites_tolerees`) :
|
|
# le jour ou une vraie unite tombe, le compte passe de 1 a 2 et personne ne le voit.
|
|
#
|
|
# ON NE RETIRE QUE CE QUE CE ROLE POSE. Les sondes de `client_journal` et de
|
|
# `client_metrique` restent dans `/usr/local/lib/setops/sondes/` : ces roles s'appliquent
|
|
# encore, ils les redeposeraient au prochain passage, et sans porteur elles sont inertes.
|
|
- name: Les unites du porteur sont-elles encore la ?
|
|
ansible.builtin.stat:
|
|
path: "/etc/systemd/system/{{ item }}"
|
|
loop: "{{ client_sante_unites_posees }}"
|
|
register: client_sante_unites_restantes
|
|
|
|
- name: Arreter et desactiver les minuteurs restes en place
|
|
ansible.builtin.systemd:
|
|
name: "{{ item.item }}"
|
|
state: stopped
|
|
enabled: false
|
|
loop: "{{ client_sante_unites_restantes.results }}"
|
|
loop_control:
|
|
label: "{{ item.item }}"
|
|
when:
|
|
- item.stat.exists
|
|
- item.item is search('\.timer$')
|
|
|
|
- name: Retirer les unites, le script et les secrets du rapport passif
|
|
ansible.builtin.file:
|
|
path: "{{ item }}"
|
|
state: absent
|
|
loop: >-
|
|
{{ client_sante_unites_posees | map('regex_replace', '^', '/etc/systemd/system/') | list
|
|
+ ['/usr/local/sbin/setops-sante.sh',
|
|
'/etc/setops/icinga-api.pass',
|
|
client_sante_ca_verification,
|
|
'/usr/local/lib/setops/sondes/disque.sh',
|
|
'/usr/local/lib/setops/sondes/plancher.sh'] }}
|
|
notify: Oublier l'echec du porteur retire
|