#!/bin/bash # Ajoute GRAFANA_ADMIN_PASSWORD à deploy/historisation/.env s'il en manque un. # # Ce mot de passe n'est pas de la même nature que les autres : les secrets des # bases ne sont jamais tapés par personne (les conteneurs les lisent), celui-ci # sert à VOUS connecter à l'interface. Il est donc généré ici — pas choisi, une # phrase inventée est plus devinable qu'elle n'en a l'air — puis affiché une # fois, et il reste relisible à tout moment dans le fichier. # # Usage : bash preparer-grafana.sh set -euo pipefail cd "$(dirname "$0")" if [ ! -f .env ]; then echo "REFUS : .env absent. Lancer d'abord bash preparer-env.sh" exit 1 fi if grep -q '^GRAFANA_ADMIN_PASSWORD=' .env; then echo "GRAFANA_ADMIN_PASSWORD est déjà défini. Rien à faire." echo echo "Pour le relire : grep GRAFANA_ADMIN_PASSWORD deploy/historisation/.env" exit 0 fi MDP="$(openssl rand -base64 18 | tr -d '/+=' | cut -c1-20)" printf '\n# Connexion à l’interface Grafana (utilisateur : admin).\nGRAFANA_ADMIN_PASSWORD=%s\n' "$MDP" >> .env chmod 600 .env # Le rôle de lecture PostgreSQL et le jeton InfluxDB vivent dans le .env à la # racine du dépôt ; le compose donne les DEUX fichiers à Grafana, donc rien à # recopier ici. On vérifie seulement qu'ils y sont, sans jamais les afficher. RACINE=../../.env for V in PG_LECTURE_PASSWORD INFLUXDB_TOKEN; do if grep -q "^$V=." "$RACINE" 2>/dev/null; then echo " $V : présent dans $RACINE" else echo " $V : MANQUANT dans $RACINE — Grafana ne pourra pas lire cette base." case "$V" in PG_LECTURE_PASSWORD) echo " -> bash creer-role-lecture.sh" ;; INFLUXDB_TOKEN) echo " -> bash exporter-jeton-influx.sh" ;; esac fi done echo echo "Grafana : http://10.10.10.22:3001" echo " utilisateur : admin" echo " mot de passe : $MDP" echo echo "Noté dans deploy/historisation/.env (600, jamais commité)." echo "Relisible par : grep GRAFANA_ADMIN_PASSWORD deploy/historisation/.env"