Pont pour le jeton InfluxDB, et sudo dans la commande de controle

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 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
This commit is contained in:
Tallagrand Thierry
2026-09-04 01:58:42 +02:00
parent 2e27e4dfdb
commit a189ad958c
2 changed files with 35 additions and 1 deletions

View File

@@ -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 "✓ Mot de passe déposé dans $ENV_DEPOT — non affiché, rien à recopier."
echo echo
echo "Contrôle (doit renvoyer une erreur de permission) :" 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)"

View File

@@ -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."