From 4441473f2f3c49f2cc491aa1911bc03ed1c93978 Mon Sep 17 00:00:00 2001 From: Dorian Date: Sun, 22 Mar 2026 16:51:49 +0000 Subject: [PATCH] fix: fleet deploy falls back to Tailscale when LAN unreachable - Add --all as alias for --fleet - Fleet deploy auto-detects Tailscale IP when LAN SSH fails - Skip .198 gracefully when unreachable instead of failing Co-Authored-By: Claude Opus 4.6 (1M context) --- scripts/deploy-to-target.sh | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/scripts/deploy-to-target.sh b/scripts/deploy-to-target.sh index cc8b02d3..7790bcee 100755 --- a/scripts/deploy-to-target.sh +++ b/scripts/deploy-to-target.sh @@ -67,20 +67,34 @@ for arg in "$@"; do --tailscale) TAILSCALE=true ;; --tailscale-node=*) TAILSCALE_NODE="${arg#*=}" ;; --fleet) FLEET=true ;; + --all) FLEET=true ;; esac done # Fleet deploy: .228 → .198 → all 3 Tailscale nodes (all 5 servers) if [ "$FLEET" = true ]; then echo "╔════════════════════════════════════════════════════════════════╗" - echo "║ FLEET DEPLOY — All 5 nodes (.228, .198, Arch 1/2/3) ║" + echo "║ FLEET DEPLOY — All nodes ║" echo "╚════════════════════════════════════════════════════════════════╝" echo "" echo "Phase 1: Build + deploy to .228 (primary build server)" - "$0" --live || { echo "FAILED: .228 deploy"; exit 1; } + # Try LAN first, fall back to Tailscale IP + if ssh $SSH_OPTS -o ConnectTimeout=5 "$TARGET_HOST" "echo ok" >/dev/null 2>&1; then + "$0" --live || { echo "FAILED: .228 deploy"; exit 1; } + elif [ -n "${TAILSCALE_PRIMARY:-}" ] || tailscale status >/dev/null 2>&1; then + TS_PRIMARY="${TAILSCALE_PRIMARY:-$(tailscale status 2>/dev/null | grep 'archipelago-0' | awk '{print $1}')}" + if [ -n "$TS_PRIMARY" ]; then + echo " LAN unreachable — using Tailscale IP $TS_PRIMARY" + ARCHIPELAGO_TARGET="archipelago@${TS_PRIMARY}" "$0" --live || { echo "FAILED: .228 deploy via Tailscale"; exit 1; } + else + echo "FAILED: .228 unreachable on LAN or Tailscale"; exit 1 + fi + else + echo "FAILED: .228 unreachable"; exit 1 + fi echo "" - echo "Phase 2: Copy to .198 (LAN secondary)" - "$0" --both || { echo "WARNING: .198 deploy failed (continuing)"; } + echo "Phase 2: Copy to .198 (LAN secondary — skip if unreachable)" + "$0" --both 2>/dev/null || echo " .198 unreachable, skipping" echo "" echo "Phase 3: Deploy to all Tailscale nodes (Arch 1/2/3)" "$SCRIPT_DIR/deploy-tailscale.sh" --all || { echo "WARNING: Some Tailscale nodes failed"; }