release 1.13.6: env-only machine paths and SSH hosts

Load ~/.config/taler-monitoring/env (taler-monitoring-env profiles)
before suite defaults. Drop hardcoded operator homes and host aliases
from scripts; apply/staging/www/secrets/wallet via env.
This commit is contained in:
Hernâni Marques 2026-07-19 03:33:12 +02:00
parent 911b5fd51a
commit 9c734cb05b
No known key found for this signature in database
32 changed files with 175 additions and 157 deletions

View file

@ -426,7 +426,7 @@ else
warn "alt_unit_names" "using built-in SI fallback"
fi
# Host + bank/exchange/merchant RAM/CPU/load (SSH koopa or koopa-external)
# Host + bank/exchange/merchant RAM/CPU/load (SSH via KOOPA_SSH from env)
set_group load
section "e2e · load snapshot (before withdraw/pay)"
metrics_report_load "${METRICS_DIR}/load-before.json" "e2e-start" || true
@ -437,51 +437,50 @@ if [ "$E2E_REMOTE" = "1" ]; then
ADMIN_PASS="${E2E_BANK_ADMIN_PASS:-${BANK_ADMIN_PASS:-}}"
MPW="${E2E_MERCHANT_TOKEN:-${MERCHANT_TOKEN:-}}"
# Stage FrancPaysan: allow admin credit without committing passwords.
# Order: already-set env → local secrets tree → SSH francpaysan-host (ops laptop).
# Order: env → FRANCPAYSAN_SECRETS → SSH FRANCPAYSAN_SSH/INSIDE_SSH + remote secret paths.
if [ -z "$ADMIN_PASS" ] && [ "${CUR:-${EXPECT_CURRENCY:-}}" = "TESTPAYSAN" ]; then
_fp_try=""
for _fp_try in \
"${FRANCPAYSAN_SECRETS:-}/stage/bank-admin-password.txt" \
"${HOME}/francpaysan-secrets/stage/bank-admin-password.txt" \
"${HOME}/src/francpaysan-secrets/stage/bank-admin-password.txt" \
"${HOME}/taler/src/francpaysan-secrets/stage/bank-admin-password.txt"
do
if [ -n "$_fp_try" ] && [ -f "$_fp_try" ]; then
if [ -n "${FRANCPAYSAN_SECRETS:-}" ]; then
_fp_try="${FRANCPAYSAN_SECRETS}/stage/bank-admin-password.txt"
if [ -f "$_fp_try" ]; then
ADMIN_PASS=$(tr -d '\n\r' <"$_fp_try")
info "bank admin secret" "from $_fp_try"
break
fi
done
fi
if [ -z "$ADMIN_PASS" ] && command -v ssh >/dev/null 2>&1; then
for _fp_host in "${FRANCPAYSAN_SSH:-francpaysan-host}" francpaysan-host; do
_remote_bank_sec="${FRANCPAYSAN_REMOTE_BANK_ADMIN_SECRET:-}"
[ -z "$_remote_bank_sec" ] && [ -n "${FRANCPAYSAN_REMOTE_SECRETS_ROOT:-}" ] && \
_remote_bank_sec="${FRANCPAYSAN_REMOTE_SECRETS_ROOT}/bank/secrets/bank-admin-password.txt"
for _fp_host in ${FRANCPAYSAN_SSH:+"$FRANCPAYSAN_SSH"} ${INSIDE_SSH:+"$INSIDE_SSH"}; do
[ -n "$_fp_host" ] && [ -n "$_remote_bank_sec" ] || continue
ADMIN_PASS=$(ssh -o BatchMode=yes -o ConnectTimeout=8 "$_fp_host" \
'sudo cat /mnt/data/stagepaysan/bank/secrets/bank-admin-password.txt 2>/dev/null' \
"sudo cat ${_remote_bank_sec} 2>/dev/null" \
2>/dev/null | tr -d '\n\r' || true)
if [ -n "$ADMIN_PASS" ]; then
info "bank admin secret" "from ${_fp_host}:/mnt/data/stagepaysan/bank/secrets/"
info "bank admin secret" "from ${_fp_host} (remote path via env)"
break
fi
done
fi
unset _fp_try _fp_host
unset _fp_try _fp_host _remote_bank_sec
fi
# Stage merchant: public templates need no token; optional default-instance token
if [ -z "$MPW" ] && [ "${CUR:-${EXPECT_CURRENCY:-}}" = "TESTPAYSAN" ]; then
for _fp_try in \
"${FRANCPAYSAN_SECRETS:-}/stage/default-instance-token.txt" \
"${HOME}/francpaysan-secrets/stage/default-instance-token.txt"
do
if [ -n "$_fp_try" ] && [ -f "$_fp_try" ]; then
MPW=$(tr -d '\n\r' <"$_fp_try")
break
fi
done
if [ -z "$MPW" ] && command -v ssh >/dev/null 2>&1; then
MPW=$(ssh -o BatchMode=yes -o ConnectTimeout=8 "${FRANCPAYSAN_SSH:-francpaysan-host}" \
'sudo cat /mnt/data/stagepaysan/merchant/secrets/default-instance-token.txt 2>/dev/null' \
2>/dev/null | tr -d '\n\r' || true)
if [ -n "${FRANCPAYSAN_SECRETS:-}" ] && [ -f "${FRANCPAYSAN_SECRETS}/stage/default-instance-token.txt" ]; then
MPW=$(tr -d '\n\r' <"${FRANCPAYSAN_SECRETS}/stage/default-instance-token.txt")
fi
if [ -z "$MPW" ] && command -v ssh >/dev/null 2>&1; then
_remote_mer_sec="${FRANCPAYSAN_REMOTE_MERCHANT_TOKEN:-}"
[ -z "$_remote_mer_sec" ] && [ -n "${FRANCPAYSAN_REMOTE_SECRETS_ROOT:-}" ] && \
_remote_mer_sec="${FRANCPAYSAN_REMOTE_SECRETS_ROOT}/merchant/secrets/default-instance-token.txt"
_fp_host="${FRANCPAYSAN_SSH:-${INSIDE_SSH:-}}"
if [ -n "$_fp_host" ] && [ -n "$_remote_mer_sec" ]; then
MPW=$(ssh -o BatchMode=yes -o ConnectTimeout=8 "$_fp_host" \
"sudo cat ${_remote_mer_sec} 2>/dev/null" \
2>/dev/null | tr -d '\n\r' || true)
fi
unset _fp_host _remote_mer_sec
fi
unset _fp_try
fi
else
ADMIN_PASS="${E2E_BANK_ADMIN_PASS:-$(read_secret "taler-bank/bank-admin-password.txt" || true)}"