Rend l'écosystème reconstructible en une commande (create+deploy idempotent) et ajoute la couche « accès » (nftables least-privilege) au zéro-confiance. Orchestrateur (phase 2) : - docs/couches-deploiement.yml : registre des couches (socle → pki → services → apps → agents) - scripts/orchestrer.py : tri par couche + topo intra-couche (graphe) → playbooks/site.yml ordonné - Makefile : site / deployer-tout / flotte-creer / reconstruire / myDay (+ gardes CONFIRMER) - docs/dependances-groupes.yml : graphe complété (keycloak→openldap, dovecot, postfix, icingaweb2, nextcloud) Audit codé-en-dur (phase 1b) : labels/slug OIDC dérivés de l'intrant `organisation` (serveur_forgejo/grafana/nextcloud) — le moteur ne porte plus de nom de tenant. Registre des flux réseau (phase 0) : - meta/flux.yml pour tous les rôles (29 rôles, 63 flux ; schéma + matrice validés) - scripts/resoudre_flux.py : matrice d'audit (docs/registre-flux.md) + rulesets nftables résolus par hôte - roles/nftables_baseline : déploie le ruleset résolu (moindre-privilège) quand activé, sinon repli Correctifs : détection du coffre Vault (chemin production → inventaire réellement résolu). Outillage : make wiki-publier (publication du wiki pédagogique dans Forgejo). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
39 lines
2.2 KiB
YAML
39 lines
2.2 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)
|
|
|
|
# --- 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') }}"
|
|
serveur_grafana_oidc_base: "https://keycloak.{{ domaine_interne }}/realms/{{ serveur_grafana_oidc_realm }}/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: "https://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] https://apt.grafana.com stable main"
|