feat(netlab): add MOTD configuration
This commit is contained in:
@@ -107,6 +107,47 @@ EOF
|
|||||||
log_warn " sudo ufw delete allow 22/tcp"
|
log_warn " sudo ufw delete allow 22/tcp"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Configure MOTD
|
||||||
|
log_info "Configuring MOTD..."
|
||||||
|
sudo chmod -x /etc/update-motd.d/* 2>/dev/null || true
|
||||||
|
|
||||||
|
cat << 'MOTD' | sudo tee /etc/update-motd.d/00-netlab > /dev/null
|
||||||
|
#!/bin/bash
|
||||||
|
TS_FQDN=$(tailscale status --json 2>/dev/null | awk -F'"' '
|
||||||
|
/"Self"/ { in_self=1 }
|
||||||
|
in_self && /"DNSName"/ { gsub(/\.$/, "", $4); print $4; exit }
|
||||||
|
')
|
||||||
|
[[ -z "$TS_FQDN" ]] && TS_FQDN="$(hostname).ts.net"
|
||||||
|
|
||||||
|
# Get configured SSH port from sshd config
|
||||||
|
SSH_PORT=$(grep -h "^Port " /etc/ssh/sshd_config.d/*.conf 2>/dev/null | awk '{print $2}' | head -1)
|
||||||
|
[[ -z "$SSH_PORT" ]] && SSH_PORT="22"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo " _ _ _____ _____ _ _ ____"
|
||||||
|
echo "| \ | | ____|_ _| | / \ | __ )"
|
||||||
|
echo "| \| | _| | | | | / _ \ | _ \\"
|
||||||
|
echo "| |\ | |___ | | | |___ / ___ \| |_) |"
|
||||||
|
echo "|_| \_|_____| |_| |_____/_/ \_\____/"
|
||||||
|
echo ""
|
||||||
|
echo "ContainerLab Network Lab Server"
|
||||||
|
echo "─────────────────────────────────────────"
|
||||||
|
echo "Access:"
|
||||||
|
echo " • SSH (public) : port ${SSH_PORT}"
|
||||||
|
echo " • SSH (Tailscale) : ${TS_FQDN}"
|
||||||
|
echo ""
|
||||||
|
echo "Labs:"
|
||||||
|
containerlab inspect --all 2>/dev/null | head -20 || echo " No labs running"
|
||||||
|
echo ""
|
||||||
|
echo "Useful commands:"
|
||||||
|
echo " containerlab deploy -t <topology>.clab.yml"
|
||||||
|
echo " containerlab inspect --all"
|
||||||
|
echo " containerlab destroy -t <topology>.clab.yml"
|
||||||
|
echo "─────────────────────────────────────────"
|
||||||
|
echo ""
|
||||||
|
MOTD
|
||||||
|
sudo chmod +x /etc/update-motd.d/00-netlab
|
||||||
|
|
||||||
# Get Tailscale hostname for display
|
# Get Tailscale hostname for display
|
||||||
TS_FQDN=$(tailscale status --json 2>/dev/null | awk -F'"' '
|
TS_FQDN=$(tailscale status --json 2>/dev/null | awk -F'"' '
|
||||||
/"Self"/ { in_self=1 }
|
/"Self"/ { in_self=1 }
|
||||||
|
|||||||
Reference in New Issue
Block a user