From a189ad958c3ae9e198f678efa6084dc63b8c5c3b Mon Sep 17 00:00:00 2001 From: Tallagrand Thierry Date: Fri, 4 Sep 2026 01:58:42 +0200 Subject: [PATCH] Pont pour le jeton InfluxDB, et sudo dans la commande de controle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La commande de controle affichee par creer-role-lecture.sh manquait sudo : elle echouait sur la socket Docker au lieu de tester le role, donc elle ne controlait rien. exporter-jeton-influx.sh recopie le jeton d ecriture InfluxDB du .env local (droits 600, lisible du seul compte DSM) vers le .env a la racine du depot, lisible depuis le poste de travail. Sans ce pont il faudrait afficher le jeton pour le recopier a la main dans le secrets.yaml de Home Assistant, qui vit sur une autre machine — exactement ce qu on cherche a ne plus faire. Rien n est affiche. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ --- deploy/historisation/creer-role-lecture.sh | 3 +- deploy/historisation/exporter-jeton-influx.sh | 33 +++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100755 deploy/historisation/exporter-jeton-influx.sh diff --git a/deploy/historisation/creer-role-lecture.sh b/deploy/historisation/creer-role-lecture.sh index 37b7825..a17a5e2 100755 --- a/deploy/historisation/creer-role-lecture.sh +++ b/deploy/historisation/creer-role-lecture.sh @@ -69,4 +69,5 @@ echo "✓ Rôle evcs_lecture créé, lecture seule." echo "✓ Mot de passe déposé dans $ENV_DEPOT — non affiché, rien à recopier." echo echo "Contrôle (doit renvoyer une erreur de permission) :" -echo " docker compose exec -T postgres psql -U evcs_lecture -d evcs -c \"DELETE FROM mesure\"" +echo " sudo docker compose exec -T postgres psql -U evcs_lecture -d evcs -c \"DELETE FROM mesure\"" +echo " (attendu : ERROR: permission denied for table mesure)" diff --git a/deploy/historisation/exporter-jeton-influx.sh b/deploy/historisation/exporter-jeton-influx.sh new file mode 100755 index 0000000..83e505f --- /dev/null +++ b/deploy/historisation/exporter-jeton-influx.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Recopie le jeton InfluxDB de deploy/historisation/.env (droits 600, lisible +# du seul compte DSM) vers le .env à la racine du dépôt, lisible par le poste +# de travail — comme l'est déjà PG_LECTURE_PASSWORD. +# +# Pourquoi : le jeton doit finir dans secrets.yaml de Home Assistant, qui vit +# sur 10.10.10.17, alors que le jeton est né sur 10.10.10.22. Sans ce pont, il +# faudrait l'afficher à l'écran pour le recopier à la main — exactement ce +# qu'on cherche à ne plus faire. +# +# Rien n'est affiché ici non plus. +# +# Usage, depuis 10.10.10.22 : +# cd /volume2/projects/EVCS/EVCS/deploy/historisation +# sudo bash exporter-jeton-influx.sh +set -euo pipefail +cd "$(dirname "$0")" +ENV_DEPOT="../../.env" + +[ -f .env ] || { echo "REFUS : .env local introuvable."; exit 1; } +[ -f "$ENV_DEPOT" ] || { echo "REFUS : $ENV_DEPOT introuvable."; exit 1; } + +JETON="$(grep -E '^DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=' .env | head -1 | cut -d= -f2-)" +[ -n "$JETON" ] || { echo "REFUS : jeton absent de .env."; exit 1; } + +if grep -q '^INFLUXDB_TOKEN=' "$ENV_DEPOT"; then + sed -i "s|^INFLUXDB_TOKEN=.*|INFLUXDB_TOKEN=$JETON|" "$ENV_DEPOT" +else + printf '\n# Jeton d ecriture InfluxDB (10.10.10.22:8086, organisation airtria,\n# seau evcs). A poser dans secrets.yaml de Home Assistant sous influxdb_token.\nINFLUXDB_TOKEN=%s\n' "$JETON" >> "$ENV_DEPOT" +fi + +echo "✓ Jeton InfluxDB recopié dans $ENV_DEPOT — non affiché." +echo " Le branchement de Home Assistant peut se faire depuis le poste de travail."