--- 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 » : 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' }}