From 56576c7d3ccbfddf33f0d46b24f83a468ec537f2 Mon Sep 17 00:00:00 2001 From: Robert Rapp Date: Mon, 12 Oct 2026 19:53:37 +0200 Subject: [PATCH] =?UTF-8?q?scripts:=20Zugang=20auch=20f=C3=BCr=20Infra-Con?= =?UTF-8?q?tainer=20(Hostschl=C3=BCssel=20per=20pct=20exec,=20Knoten=20nac?= =?UTF-8?q?h=20HA-Umzug)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- platform/proxmox/scripts/refresh-vm-access.sh | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/platform/proxmox/scripts/refresh-vm-access.sh b/platform/proxmox/scripts/refresh-vm-access.sh index 4232e01..0af580e 100755 --- a/platform/proxmox/scripts/refresh-vm-access.sh +++ b/platform/proxmox/scripts/refresh-vm-access.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Zugang zu den GPU-VMs auffrischen (läuft auf ops, im Verzeichnis platform/proxmox/tofu, mit +# Zugang zu den GPU-VMs und Infra-Containern auffrischen (läuft auf ops, im Verzeichnis platform/proxmox/tofu, mit # geladenem /root/.config/knaster/tofu.env). Nötig nach jedem VM-Neustart, solange die Gäste per # DHCP ohne Reservierung laufen (D5): Adressen können wechseln (12.10. zwei VMs vertauscht). # @@ -25,3 +25,17 @@ for name, v in json.load(sys.stdin).items(): echo "$ip $key" >> ~/.ssh/known_hosts echo "$name ($ip): $(ssh-keygen -lf <(echo "$ip $key") | awk '{print $2}')" done + +# Infra-Container: Hostschlüssel über pct exec (Container hat keinen Gast-Agenten) +tofu output -json infra_containers | python3 -c ' +import json, sys +for name, v in json.load(sys.stdin).items(): + if v.get("ipv4"): + print(name, v["node"], v["vmid"], v["ipv4"]) +' | while read -r name node vmid ip; do + node=$(ssh -n pve44 "pvesh get /cluster/resources --type vm --output-format json" | python3 -c "import json,sys; print(next(r['node'] for r in json.load(sys.stdin) if r['vmid']==$vmid))") + key=$(ssh -n "$node" "pct exec $vmid -- cat /etc/ssh/ssh_host_ed25519_key.pub") + ssh-keygen -R "$ip" >/dev/null 2>&1 || true + echo "$ip $key" >> ~/.ssh/known_hosts + echo "$name ($ip, $node): $(ssh-keygen -lf <(echo "$ip $key") | awk '{print $2}')" +done