Set-OPS-Public/roles/serveur_grafana
Daniel Allaire 5812e0c6ca depot de binaires : le site tient ce que les runners allaient chercher
Le cache du site couvrait apt ; quatre artefacts arrivaient autrement, parce qu ils
ne vivent dans aucun depot apt. Le controleur les tire puis les pousse par SSH.

Mesure du 2026-09-12 : le cache du runner du site est ABSENT. Un second locataire
monte depuis lui sortait chercher 570 Mo sur codeberg.org, github.com et
download.nextcloud.com, alors que le meme ecosysteme ne demandait plus un seul
paquet a Debian. Le poste du mainteneur les a depuis toujours : personne ne l avait vu.

Pas de relais transparent, et la mesure tranche : github.com redirige vers une URL
signee valable une heure, differente a chaque requete. Un cache qui la prend pour
cle ne fait jamais mouche. Le relais marcherait pour deux amonts sur quatre.

Donc un vrai depot, dans le service qui existe deja. LocalDirs d apt-cacher-ng publie
un repertoire du disque sous un prefixe, eprouve AVANT d ecrire le role. Aucun service,
aucun port, aucun certificat, aucun flux nouveaux : l ingress 3142 pair flotte couvre
exactement ce chemin.

Les versions ne sont pas recopiees : le role lit les defauts des quatre consommateurs.
Les quatre roles recoivent une tache AJOUTEE, placee avant leur stat de cache — si le
depot sert, le stat le voit et la tache amont se saute d elle-meme. Aucune tache
existante n a change.

P70 exige que tout dest ecrit sous un cache_local figure au depot. Une liste qui suit
une autre prend du retard ; celle-ci est nee avec sa garde.

Deux marches payees en chemin :
- failed_when: false REECRIT le verdict, donc la premiere garde de signature ne
  gardait rien. Elles mesurent le fichier desormais.
- file: state=directory cree les parents en 0750 : apt-cacher-ng, qui ne tourne pas
  en root, rendait 403 sur chaque fichier. Un chemin se traverse en entier.

Verifie sur l infrastructure : 6/6 artefacts servis (200/206) depuis le runner du site
ET depuis une machine du locataire a travers la frontiere ; les 6 empreintes SHA-256
sont identiques a celles qui ont construit Chezlepro ; second passage changed=0.

make prouver : 69 OK, 0 echec, 1 saute. ansible-lint : 0 failure, profil production.

Inclut aussi force: true sur cinq telechargements de cles : une reprise conditionnelle
ne reprend rien (304 Not Modified, size 0, attempts 5).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-12 23:45:00 -04:00
..
defaults les depots tiers passent par le cache, et le tenant n a plus le sien 2026-09-10 14:53:48 -04:00
files/dashboards Grafana : dashboard provisionné « Journaux de la flotte » (Loki, Viewer-friendly) 2026-07-04 16:10:59 -04:00
handlers Rendre le dry-run (--check) fiable sur les rôles applicatifs 2026-07-01 21:01:53 -04:00
meta une source vide n est pas « tout le monde » 2026-09-10 19:14:23 -04:00
tasks depot de binaires : le site tient ce que les runners allaient chercher 2026-09-12 23:45:00 -04:00
templates observabilite : le site cesse de ne rien voir de lui-meme 2026-09-10 04:43:01 -04:00
README.md Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00

serveur_grafana

Tableaux de bord Grafana (dépôt apt officiel Grafana). Interface d'observabilité au-dessus de Prometheus (métriques) et Loki (journaux).

Rôle

  • Ajoute le dépôt apt Grafana et installe grafana.
  • Provisionne les datasources Prometheus + Loki (/etc/grafana/provisioning/datasources/) — Grafana les câble au démarrage.
  • Domaine, root_url et mot de passe admin (Vault) via un drop-in systemd (non destructif, ne touche pas grafana.ini du paquet).
  • Inscriptions publiques désactivées.

Publication

  • Derrière serveur_nginx (TLS à l'edge) ; GF_SERVER_ROOT_URL=https://grafana.exemple.internal/.
  • Le site nginx se déclare côté serveur_nginx.

Secret requis (Vault)

serveur_grafana_admin_password: "{{ vault_grafana_admin }}"

Variables principales

Variable Défaut Rôle
serveur_grafana_hostname grafana.exemple.internal Domaine
serveur_grafana_prometheus_url http://localhost:9090 Datasource Prometheus
serveur_grafana_loki_url http://localhost:3100 Datasource Loki

Notes

  • Prometheus, Loki et Grafana sont co-localisés sur obs-01 → datasources en localhost.
  • Dépendance serveur_grafana requiert serveur_prometheus + serveur_loki actifs (déjà dans docs/dependances-groupes.yml).

Hors périmètre

  • Dashboards provisionnés (à ajouter ensuite), alerting Grafana, authentification OIDC via Keycloak (intégration ultérieure).