homelab/k3s/scripts/on-controls.sh
2026-04-18 18:28:55 -04:00

22 lines
699 B
Bash
Executable file

#!/usr/bin/env bash
# Copy a local script to /tmp on each control-plane node and execute it there with sudo.
# Usage: on-controls.sh <local-script> [args...]
set -uo pipefail
SCRIPT="${1:?usage: $(basename "$0") <local-script> [args...]}"
shift
[[ -f "$SCRIPT" ]] || { echo "not a file: $SCRIPT" >&2; exit 1; }
CONTROLS=(pve-control adder-control game-control)
NAME="$(basename "$SCRIPT")"
REMOTE="/tmp/$NAME"
rc=0
for node in "${CONTROLS[@]}"; do
echo "========== $node =========="
if ! scp -q "$SCRIPT" "$node:$REMOTE"; then
echo "(scp failed on $node)" >&2; rc=1; continue
fi
ssh "$node" "sudo bash $REMOTE $*; ret=\$?; rm -f $REMOTE; exit \$ret" || rc=1
done
exit $rc