#!/usr/bin/bash # shellcheck disable=SC2016 # intentional: $vars expand in-guest, not locally # ga-push-key.sh — push agent SSH key + NOPASSWD sudo to all GA-OK VMs via guest-agent. # Runs from the workstation, routing each call through remote.sh vm-guest on the VM's host. set -u cd /home/reachableceo/projects/PFVCluster || exit 1 KEY='ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIWms/uCXnjjo4KyxHBcYI2TDHe8OZ2wle6W/0hSRQLu reachableceo@ultix-streaming' INGUEST='for u in root localuser; do getent passwd "$u" >/dev/null || continue; H=$(getent passwd "$u"|cut -d: -f6); mkdir -p "$H/.ssh"; chmod 700 "$H/.ssh"; AK="$H/.ssh/authorized_keys"; touch "$AK"; chmod 600 "$AK"; grep -qF "'"${KEY}"'" "$AK" || echo "'"${KEY}"'" >> "$AK"; chown -R "$u": "$H/.ssh"; done; [ -d /etc/sudoers.d ] && { echo "localuser ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/010-agent; chmod 440 /etc/sudoers.d/010-agent; }; echo PUSHDONE $(hostname)' # host:vmid list of GA-OK VMs (excluding pfv-bms=100 policy-excluded, ultix-streaming=5111 self) pairs=" pfv-tsys1:101 pfv-tsys1:102 pfv-tsys1:104 pfv-tsys3:313 pfv-tsys5:500 pfv-tsys5:5000 pfv-tsys5:5105 pfv-tsys5:5106 pfv-tsys5:5107 pfv-tsys5:5108 pfv-tsys5:5109 pfv-tsys5:5112 pfv-tsys5:51012 pfv-tsys5:51013 pfv-tsys5:53100 pfv-tsys5:53102 pfv-tsys6:600 pfv-tsys6:601 pfv-tsys6:602 pfv-tsys6:603 pfv-tsys7:701 pfv-tsys7:703 pfv-tsys7:705 pfv-tsys7:706 pfv-tsys9:905 " for p in $pairs; do host="${p%%:*}"; vid="${p##*:}" out=$(PROX_HOST="$host" VM_ID="$vid" GUEST_TIMEOUT=120 bash tests/remote.sh vm-guest "$INGUEST" &1) printf '%-12s %-6s %s\n' "$host" "$vid" "${out//$'\n'/ | }" done