Deux mouvements d une seule doctrine : le site fournit tout ce dont un
tenant a besoin pour venir au monde.
1. LES DEPOTS TIERS. Grafana, Icinga, Smallstep et Collabora ne publient
qu en HTTPS ; apt-cacher-ng ne relaie pas un tunnel, et le socle pose donc
Acquire::https::Proxy DIRECT. Chaque machine sortait elle-meme sur
Internet. Le cache declare desormais un Remap par fournisseur, et chaque
role demande en {{ ..._depot_schema }}:// - http des qu un cache est
declare, https sinon. Le TLS n est rompu nulle part : il est TERMINE au
cache, qui est notre machine, et l integrite vient des signatures.
avant : 4 fournisseurs en HTTPS direct, 14 machines sortant seules
apres : 0 source en HTTPS direct, 0 erreur apt sur 14 machines
Trois lecons. Le remap appartient au cache qui SORT : pose sur un cache
chaine, il tente le HTTPS a travers son amont et rend 503. apt_repository
AJOUTE au lieu de remplacer, donc l ancienne ligne https sortait toujours.
Et la liste des fournisseurs ne se devine pas - j en avais trois, l audit
en a revele un quatrieme.
2. LE CACHE DU TENANT. Sa ligne portait son propre retrait depuis toujours
- service MUTUALISABLE, un ecosysteme au premier age peut pointer sur celui
de son hote. Retiree. Ce qu on perd, dit franchement : plus de trafic
inter-zone et plus de charge sur site-cache-01, contre un service de moins
a poser, superviser et reproduire.
3. UN ROLE QU ON RETIRE DOIT DEFAIRE CE QU IL A FAIT. Le retrait a montre
que rien ne nettoie derriere. Le fichier apt visait un cache eteint en
ecrasant le plancher qui fonctionnait - le defaut deja paye a quinze
machines. Et les sondes du cache restaient, le porteur poussant pour des
services qu Icinga ne definit plus (404). Le socle retire le premier,
client_sante derive les sondes attendues et retire les orphelines.
P65 refuse tout role visant un depot relaye en https ecrit en dur. Sa
limite est dite : elle empeche une regression sur ce qui est connu, elle ne
decouvre pas l inconnu.
Mesure : Icinga 87 OK sur 96, prouver 65 OK, lint 0 defaut.
Reste, et c est dit : apt-cacher-ng tourne toujours sur forge-01 que plus
aucun plan ne declare.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
79 lines
4.5 KiB
YAML
79 lines
4.5 KiB
YAML
---
|
|
serveur_grafana_paquets:
|
|
- grafana
|
|
|
|
serveur_grafana_service: "grafana-server"
|
|
serveur_grafana_port: 3000
|
|
|
|
# Publication (derriere serveur_nginx, TLS termine a l'edge).
|
|
serveur_grafana_hostname: "grafana.{{ domaine_interne }}"
|
|
serveur_grafana_root_url: "https://{{ serveur_grafana_hostname }}/"
|
|
|
|
# Datasources (Prometheus + Loki, co-localises sur obs-01).
|
|
serveur_grafana_prometheus_url: "http://localhost:9090"
|
|
serveur_grafana_loki_url: "http://localhost:3100"
|
|
# Dashboards provisionnés (fichiers) — répertoire lu par le provider Grafana.
|
|
serveur_grafana_dashboards_dir: "/var/lib/grafana/dashboards"
|
|
|
|
# Secret OBLIGATOIRE (Ansible Vault).
|
|
serveur_grafana_admin_password: "{{ vault_grafana_admin | default('') }}" # rempli depuis la voute (vault_grafana_admin)
|
|
|
|
# --- Connexion locale (accès de secours) ---
|
|
# `false` = le formulaire identifiant/mot de passe n'est PAS proposé au repos ; le SSO
|
|
# Keycloak est le seul chemin annoncé. Le compte local continue d'exister : on l'atteint
|
|
# par `sudo` sur l'hôte (voir docs/authentification.md), qui est le mécanisme de secours
|
|
# retenu. Une porte de connexion ouverte en permanence contournerait la politique de mot
|
|
# de passe, le MFA et surtout la révocation centrale — désactiver quelqu'un dans LDAP
|
|
# laisserait le compte local valide, sans que rien ne le signale.
|
|
serveur_grafana_connexion_locale: false
|
|
|
|
# --- SSO OIDC (Keycloak, realm applicatif) ---
|
|
# « Se connecter avec <organisation> » : Grafana délègue l'auth à Keycloak (client confidentiel).
|
|
# Requiert client_pki sur ce nœud (confiance step_ca pour les appels serveur→Keycloak) +
|
|
# résolution de l'hôte Keycloak (edge). Le client OIDC doit exister dans le realm.
|
|
serveur_grafana_oidc_actif: true
|
|
serveur_grafana_oidc_nom: "{{ organisation | default('Organisation') }}"
|
|
serveur_grafana_oidc_client_id: "grafana"
|
|
serveur_grafana_oidc_client_secret: "{{ vault_grafana_oidc | default('') }}" # voûte (vault_grafana_oidc)
|
|
serveur_grafana_oidc_realm: "{{ identite_realm | default('chezlepro') }}"
|
|
# DERIVE de l'exposition declaree au plan (role `resoudre_idp`) ; repli seulement.
|
|
serveur_grafana_oidc_repli: >-
|
|
https://keycloak.{{ domaine_interne }}/realms/{{ serveur_grafana_oidc_realm }}
|
|
serveur_grafana_oidc_base: >-
|
|
{{ (resoudre_idp_base | default(serveur_grafana_oidc_repli)) }}/protocol/openid-connect
|
|
serveur_grafana_oidc_scopes: "openid email profile"
|
|
# RBAC via SSO : mappe le claim 'roles' (rôles de realm Keycloak) vers le niveau Grafana.
|
|
# Défaut : grafana-admin→Admin, grafana-editor→Editor, sinon Viewer. Vider pour désactiver.
|
|
serveur_grafana_oidc_role_path: "contains(roles[*], 'grafana-admin') && 'Admin' || contains(roles[*], 'grafana-editor') && 'Editor' || 'Viewer'"
|
|
|
|
# Depot apt officiel Grafana (partage avec serveur_loki).
|
|
serveur_grafana_depot_cle_url: "{{ serveur_grafana_depot_schema }}://apt.grafana.com/gpg-full.key"
|
|
serveur_grafana_depot_cle_fichier: "/etc/apt/keyrings/grafana.asc"
|
|
serveur_grafana_depot_source: "deb [signed-by=/etc/apt/keyrings/grafana.asc] {{ serveur_grafana_depot_schema }}://apt.grafana.com stable main"
|
|
|
|
# Empreinte du mot de passe admin APPLIQUE — permet la rotation sans lire le secret
|
|
# en place (impossible : il est hache). Voir tasks/main.yml.
|
|
serveur_grafana_marqueur_admin: "/etc/grafana/.setops-admin-sha256"
|
|
|
|
# Chemins du paquet Debian — la CLI ne les devine pas (voir tasks/main.yml).
|
|
serveur_grafana_homepath: "/usr/share/grafana"
|
|
serveur_grafana_donnees: "/var/lib/grafana"
|
|
|
|
# --- Sonde de supervision -----------------------------------------------------------
|
|
serveur_grafana_sonde_url: "http://127.0.0.1:{{ serveur_grafana_port }}"
|
|
|
|
# --- SCHEMA DES DEPOTS TIERS (2026-09-10) --------------------------------------------
|
|
#
|
|
# `http` DES QU'UN CACHE EST DANS LE CHEMIN, `https` sinon. Ce n'est pas un relachement :
|
|
# le cache RELAIE ces depots en https vers le fournisseur (voir `serveur_artefacts`,
|
|
# `Remap-*`), et l'integrite vient des SIGNATURES du depot, qu'apt verifie de toute facon.
|
|
# Le meme raisonnement vaut deja pour `deb.debian.org` depuis toujours.
|
|
#
|
|
# Sans cette derivation, chaque machine sortait elle-meme sur Internet : le mandataire ne
|
|
# vaut que pour `http`, et le socle pose deliberement `Acquire::https::Proxy "DIRECT"`
|
|
# parce qu'un cache sans remap refuse les tunnels. Le remap leve ce refus ; encore
|
|
# faut-il DEMANDER en http.
|
|
#
|
|
# DEGRADE, JAMAIS DEVINE : pas de cache d'amorcage declare, pas de reecriture.
|
|
serveur_grafana_depot_schema: >-
|
|
{{ 'http' if (artefacts_amorcage | default('') | string | length > 0) else 'https' }}
|