Compare commits
4 commits
07903ac9e3
...
4cb3852039
Author | SHA1 | Date | |
---|---|---|---|
![]() |
4cb3852039 | ||
![]() |
9274ab1e17 | ||
![]() |
38bc909c6a | ||
![]() |
53480c72bc |
1 changed files with 88 additions and 39 deletions
|
@ -1,5 +1,11 @@
|
||||||
{ lib, stdenv, writeShellScriptBin, rsync, openssh, ... }:
|
{
|
||||||
|
lib,
|
||||||
|
stdenv,
|
||||||
|
writeShellScriptBin,
|
||||||
|
rsync,
|
||||||
|
openssh,
|
||||||
|
...
|
||||||
|
}:
|
||||||
writeShellScriptBin "lab" ''
|
writeShellScriptBin "lab" ''
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
@ -62,7 +68,7 @@ writeShellScriptBin "lab" ''
|
||||||
local target_host="sma@grey-area"
|
local target_host="sma@grey-area"
|
||||||
;;
|
;;
|
||||||
"reverse-proxy")
|
"reverse-proxy")
|
||||||
local target_host="sma@reverse-proxy"
|
local target_host="sma@reverse-proxy.tail807ea.ts.net"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
error "Unknown machine: $machine"
|
error "Unknown machine: $machine"
|
||||||
|
@ -128,12 +134,55 @@ writeShellScriptBin "lab" ''
|
||||||
warn " congenital-optimist: ⚠ Tailscale inactive"
|
warn " congenital-optimist: ⚠ Tailscale inactive"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check if -v (verbose) flag is passed
|
||||||
|
local verbose=0
|
||||||
|
if [[ "''${1:-}" == "-v" ]]; then
|
||||||
|
verbose=1
|
||||||
|
fi
|
||||||
|
|
||||||
# Check remote machines
|
# Check remote machines
|
||||||
for machine in sleeper-service grey-area reverse-proxy; do
|
for machine in sleeper-service grey-area reverse-proxy; do
|
||||||
if ${openssh}/bin/ssh -o ConnectTimeout=5 -o BatchMode=yes "sma@$machine" "echo OK" >/dev/null 2>&1; then
|
local ssh_user="sma" # Using sma as the admin user for remote machines
|
||||||
success " $machine: ✓ Online"
|
|
||||||
|
# Test SSH connectivity with debug info if in verbose mode
|
||||||
|
if [[ $verbose -eq 1 ]]; then
|
||||||
|
log "Testing SSH connection to $machine (LAN)..."
|
||||||
|
${openssh}/bin/ssh -v -o ConnectTimeout=5 -o BatchMode=yes "$ssh_user@$machine" "echo ✓ SSH connection to $machine successful" 2>&1
|
||||||
|
|
||||||
|
# Use specific hostname for reverse-proxy
|
||||||
|
if [[ "$machine" == "reverse-proxy" ]]; then
|
||||||
|
log "Testing SSH connection to reverse-proxy.tail807ea.ts.net (Tailscale)..."
|
||||||
|
${openssh}/bin/ssh -v -o ConnectTimeout=5 -o BatchMode=yes "$ssh_user@reverse-proxy.tail807ea.ts.net" "echo ✓ SSH connection to reverse-proxy.tail807ea.ts.net successful" 2>&1
|
||||||
|
else
|
||||||
|
log "Testing SSH connection to $machine.tailnet (Tailscale)..."
|
||||||
|
${openssh}/bin/ssh -v -o ConnectTimeout=5 -o BatchMode=yes "$ssh_user@$machine.tailnet" "echo ✓ SSH connection to $machine.tailnet successful" 2>&1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# For reverse-proxy, try Tailscale first as it's likely only accessible that way
|
||||||
|
if [[ "$machine" == "reverse-proxy" ]]; then
|
||||||
|
# Use the specific Tailscale hostname for reverse-proxy
|
||||||
|
if ${openssh}/bin/ssh -o ConnectTimeout=5 -o BatchMode=yes "$ssh_user@reverse-proxy.tail807ea.ts.net" "echo OK" >/dev/null 2>&1; then
|
||||||
|
success " $machine: ✓ Online (Tailscale)"
|
||||||
|
elif ${openssh}/bin/ssh -o ConnectTimeout=2 -o BatchMode=yes "$ssh_user@$machine" "echo OK" >/dev/null 2>&1; then
|
||||||
|
success " $machine: ✓ Online (LAN)"
|
||||||
else
|
else
|
||||||
warn " $machine: ⚠ Unreachable"
|
warn " $machine: ⚠ Unreachable"
|
||||||
|
if [[ $verbose -eq 1 ]]; then
|
||||||
|
log " ℹ️ Note: reverse-proxy is likely only accessible via Tailscale"
|
||||||
|
log " ℹ️ Check if Tailscale is running on both machines and if the SSH service is active"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# For other machines, try LAN first then Tailscale as fallback
|
||||||
|
else
|
||||||
|
if ${openssh}/bin/ssh -o ConnectTimeout=2 -o BatchMode=yes "$ssh_user@$machine" "echo OK" >/dev/null 2>&1; then
|
||||||
|
success " $machine: ✓ Online (LAN)"
|
||||||
|
# Try with Tailscale hostname as fallback
|
||||||
|
elif ${openssh}/bin/ssh -o ConnectTimeout=3 -o BatchMode=yes "$ssh_user@$machine.tailnet" "echo OK" >/dev/null 2>&1; then
|
||||||
|
success " $machine: ✓ Online (Tailscale)"
|
||||||
|
else
|
||||||
|
warn " $machine: ⚠ Unreachable"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue