ausfuehrer: Nur-Lesen-Modus (nur Bericht, jeder andere Auftrag abgelehnt), wahlweise bei der Einrichtung

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-09-24 18:52:36 +02:00
co-authored by Claude Opus 5.5
parent 209549f0f3
commit b452b5e672
3 changed files with 25 additions and 4 deletions
+7 -3
View File
@@ -5,10 +5,14 @@
# Proxmox-Host und startet den Dienst. Das gemeinsame Geheimnis wandert vom Container des Homelab-Teils
# per Pipe direkt auf den Host (0600) — es steht in keiner Befehlszeile.
#
# Nutzung: bash deploy/homelab/ausfuehrer-einrichten.sh <ip-des-containers>
# Nutzung: bash deploy/homelab/ausfuehrer-einrichten.sh <ip-des-containers> [--nur-lesen]
# --nur-lesen: nur der Bericht, jeder andere Auftrag wird abgelehnt (umschalten in
# /etc/mc2-ausfuehrer.json, "nur_lesen": false, dann systemctl restart mc2-ausfuehrer).
set -euo pipefail
cd "$(dirname "$0")/../.."
IP="${1:?Nutzung: ausfuehrer-einrichten.sh <ip-des-containers>}"
IP="${1:?Nutzung: ausfuehrer-einrichten.sh <ip-des-containers> [--nur-lesen]}"
NUR_LESEN=false
[ "${2:-}" = "--nur-lesen" ] && NUR_LESEN=true
PVE="${MC_PVE:-pve}"
ssh -o BatchMode=yes "$PVE" "install -d -m 755 /usr/local/lib/mc2"
@@ -18,7 +22,7 @@ ssh -o BatchMode=yes "$PVE" "cat > /etc/systemd/system/mc2-ausfuehrer.service" <
# shellcheck disable=SC2029 # $IP soll hier (am PC) eingesetzt werden
ssh -o BatchMode=yes "root@$IP" "cat /var/lib/mc2/ausfuehrer.token" \
| ssh -o BatchMode=yes "$PVE" "umask 077; read -r t; [ -n \"\$t\" ] || exit 1; \
printf '{\"server\": \"http://%s:9001\", \"token\": \"%s\", \"node\": \"%s\"}\n' '$IP' \"\$t\" \"\$(hostname)\" \
printf '{\"server\": \"http://%s:9001\", \"token\": \"%s\", \"node\": \"%s\", \"nur_lesen\": %s}\n' '$IP' \"\$t\" \"\$(hostname)\" '$NUR_LESEN' \
> /etc/mc2-ausfuehrer.json"
ssh -o BatchMode=yes "$PVE" "systemctl daemon-reload && systemctl enable --now mc2-ausfuehrer.service \
&& systemctl restart mc2-ausfuehrer.service && sleep 5 && systemctl is-active mc2-ausfuehrer.service"