Set-OPS-Public/roles/client_sante/tasks/retirer.yml
Daniel Allaire 8d40c687e1 site : journaux allégés, porteur de santé retiré des hyperviseurs
- 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>
2026-10-03 17:58:47 -04:00

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