Set-OPS-Public/roles/serveur_grafana/templates/setops.conf.j2
Daniel Allaire 055aed665e grafana : la synthèse comme page d'accueil
- setops.conf : GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH vers setops-synthese.json
- CHANGELOG 70 complété

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 01:43:33 -04:00

40 lines
2.6 KiB
Django/Jinja

[Service]
# `Restart=on-failure` vient du paquet, SANS `RestartSec` — donc 100 ms par defaut.
# Le 2026-08-10, une migration de base a echoue au premier demarrage : systemd a relance
# six fois en une seconde, chaque relance rejouant les migrations sur la meme base SQLite.
# Un echec unique s'est ainsi presente comme un desastre, et il a fallu remonter tout le
# journal pour retrouver la PREMIERE erreur — la seule qui disait quelque chose.
#
# Dix secondes laissent le temps de voir, de journaliser, et n'empilent pas les migrations.
RestartSec=10
Environment=GF_SERVER_DOMAIN={{ serveur_grafana_hostname }}
Environment=GF_SERVER_ROOT_URL={{ serveur_grafana_root_url }}
Environment=GF_SECURITY_ADMIN_PASSWORD={{ serveur_grafana_admin_password }}
Environment=GF_USERS_ALLOW_SIGN_UP=false
{# LA SYNTHESE COMME PAGE D'ACCUEIL (2026-10-04) : a la connexion, la question « faut-il
agir ? » plutot que la liste des tableaux. Le fichier est pose par ce role (tableau de
synthese) ; sans lui, Grafana revient a son accueil par defaut, sans erreur. #}
Environment=GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH={{ serveur_grafana_dashboards_dir }}/setops-synthese.json
{# Le formulaire local est offert, ou il ne l'est pas — et le gabarit le DIT dans
les deux cas. Cette ligne vivait sous le `if` du SSO : SSO eteint, elle
disparaissait, et c'est le defaut de Grafana qui decidait en silence. Un
reglage d'authentification qu'aucun fichier n'ecrit est un reglage que
personne ne peut relire.
Masquer le formulaire ne supprime pas le compte : `grafana-cli admin
reset-admin-password` reste utilisable sur l'hote. #}
Environment=GF_AUTH_DISABLE_LOGIN_FORM={{ 'false' if serveur_grafana_connexion_locale | bool else 'true' }}
{% if serveur_grafana_oidc_actif %}
Environment=GF_AUTH_GENERIC_OAUTH_ENABLED=true
Environment=GF_AUTH_GENERIC_OAUTH_NAME={{ serveur_grafana_oidc_nom }}
Environment=GF_AUTH_GENERIC_OAUTH_CLIENT_ID={{ serveur_grafana_oidc_client_id }}
Environment=GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET={{ serveur_grafana_oidc_client_secret }}
Environment="GF_AUTH_GENERIC_OAUTH_SCOPES={{ serveur_grafana_oidc_scopes }}"
Environment=GF_AUTH_GENERIC_OAUTH_AUTH_URL={{ serveur_grafana_oidc_base }}/auth
Environment=GF_AUTH_GENERIC_OAUTH_TOKEN_URL={{ serveur_grafana_oidc_base }}/token
Environment=GF_AUTH_GENERIC_OAUTH_API_URL={{ serveur_grafana_oidc_base }}/userinfo
Environment=GF_AUTH_GENERIC_OAUTH_LOGIN_ATTRIBUTE_PATH=preferred_username
{% if serveur_grafana_oidc_role_path %}
Environment="GF_AUTH_GENERIC_OAUTH_ROLE_ATTRIBUTE_PATH={{ serveur_grafana_oidc_role_path }}"
Environment=GF_AUTH_GENERIC_OAUTH_ROLE_ATTRIBUTE_STRICT=false
{% endif %}
{% endif %}