#!/bin/sh # Gere par Set-OPS (role client_metrique). Ne pas editer a la main. # Synchronise le cert step_ca (client_pki, root:root) vers un emplacement lisible # par 'prometheus' (l'user de node_exporter). Cle en 0600. Idempotent ; appele au # deploiement ET au renouvellement (unite .path). set -eu SRC_CERT="{{ client_metrique_tls_source_cert }}" SRC_KEY="{{ client_metrique_tls_source_cle }}" DST="{{ client_metrique_tls_dir }}" [ -f "$SRC_CERT" ] && [ -f "$SRC_KEY" ] || exit 0 install -o prometheus -g prometheus -m 0644 "$SRC_CERT" "$DST/node.crt" install -o prometheus -g prometheus -m 0600 "$SRC_KEY" "$DST/node.key" # REDEMARRAGE, pas rechargement. L'unite Debian declare `ExecReload=kill -HUP $MAINPID`, # mais node_exporter ne sait PAS se recharger : il MEURT sur SIGHUP. `try-reload-or-restart` # fait donc confiance a un ExecReload que le binaire n'honore pas, et laisse le service # arrete — silencieusement, jusqu'au prochain deploiement. # # Mesure du 2026-08-09, sur backup-01 : # systemctl reload alloy -> active # systemctl reload prometheus-node-exporter -> INACTIVE # et dans l'unite morte : `ExecStart ... code=killed ; status=1/HUP`. # # Consequence de l'ancien code : a chaque renouvellement de certificat (toutes les 24 h), # la collecte de metriques s'arretait sur les quatorze hotes sans que rien ne le dise. # Trouve par le passage d'idempotence — 13 hotes rapportaient `changed` sur # « Activer et demarrer node_exporter », parce qu'Ansible le RESSUSCITAIT a chaque fois. # # Le commentaire precedent enoncait une hypothese (« relit le cert a chaud ») ; c'est # elle qui etait fausse, pas le code. systemctl restart {{ client_metrique_service }} 2>/dev/null || true