fix(installer): envsubst-Redirection wiederhergestellt — DAS war der x14-Haenger

Der Trace auf x14 endete exakt hier:
  + envsubst ${NODE_NAME} ... ${APACHE_ERROR_FILES}
  root@x14:/home/mm#

Ohne "< \$2.tmp" liest envsubst STDIN. Bei sh install.sh vom Terminal ist stdin
die Konsole -> der Installer wartet auf Eingabe, nach der letzten Meldung
"Schreibe Konfiguration ...". Genau das Bild: Stillstand, ^C, kein Fehler.
Bei curl | sh waere es schlimmer: envsubst wuerde den Rest des Skripts fressen.

Ein frueherer Patch von mir hat die Redirection verschluckt; alle Laeufe mit
vorhandener telegraf.conf (x22) liefen trotzdem, weil dort nur der Fallback
subst_vars() aktiv war. Erst der Erstinstall (x14) traf envsubst.

Verifiziert: vorher Haenger bei envsubst, jetzt vollstaendiger Durchlauf mit
CONFIG_VERSION-Marker und allen Confs.
This commit is contained in:
mm committed 2026-09-14 10:42:21 +02:00
1 parent 78f5b9ab5e
commit ea5b796012
1 file changed
+9 -1
+9 -1
View File
@@ -815,7 +815,15 @@ fetch_conf() {
fetch "$1" "$2.tmp"
load_defaults
if command -v envsubst >/dev/null; then
envsubst '${NODE_NAME} ${PROM_URL} ${LOKI_URL} ${TELEGRAF_TOKEN} ${PVE_TOKEN} ${PVE_NODE} ${PVE_URL} ${APACHE_LOG} ${APACHE_FILES} ${APACHE_ERROR_FILES}'
# PFLICHT: Redirection. Ohne "< $2.tmp" liest envsubst STDIN.
#
# Realer Ausfall (x14): hier fehlte die Redirection. `envsubst '${…}'` ohne
# Eingabeumleitung wartet auf stdin — bei `sh install.sh` vom Terminal ist
# das die Konsole, der Installer blieb also NACH "Schreibe Konfiguration …"
# stehen und wartete auf Eingabe. Der Trace endete exakt hier.
# Bei `curl … | sh` waere es noch schlimmer: envsubst wuerde den REST des
# Skripts als Eingabe verbrauchen.
envsubst '${NODE_NAME} ${PROM_URL} ${LOKI_URL} ${TELEGRAF_TOKEN} ${PVE_TOKEN} ${PVE_NODE} ${PVE_URL} ${APACHE_LOG} ${APACHE_FILES} ${APACHE_ERROR_FILES}' < "$2.tmp" > "$2"
else
subst_vars "$2.tmp" "$2" NODE_NAME PROM_URL LOKI_URL TELEGRAF_TOKEN PVE_TOKEN PVE_NODE PVE_URL APACHE_LOG APACHE_FILES APACHE_ERROR_FILES
fi