refactor(switches): standardize all switch names to <site>-<rack>-<function>-<NN>
Rename all 5 switches across all layers (DNS, DHCP, device hostname, conman console, ser2net, udev symlinks, repo files) to follow the <site>-<rack>-<function>-<count> convention: pfv-core-sw01 → pfv-r5-core-01 (rack 5 core) pfv-tor3-mgmt → pfv-r3-tor-mgmt-01 (rack 3 mgmt TOR) pfv-tor3-stor → pfv-r3-tor-stor-01 (rack 3 storage TOR) pfv-r2-tor-top → pfv-r2-tor-01 (rack 2 TOR) subodev-torsw01 → pfv-r6-mgmt-01 (rack 6 mgmt) Dead switch (pfv-r2-sw, port 2007) removed from mapping.txt. pfv-rrinfra-rtr unchanged (router, not a switch). Device hostnames changed via conman. Configs regenerated on pfv-tsys4. All .cmds files, validate-conman.sh, and AGENTS.md updated. [#369] 💘 Generated with Crush Assisted-by: Crush:glm-5.2
This commit is contained in:
@@ -254,7 +254,7 @@ Switch configs are pulled via serial console through a conman + ser2net
|
||||
stack on pfv-tsys4.
|
||||
|
||||
- **conmand server:** pfv-tsys4 (Tailscale `100.70.77.93`, port 7890)
|
||||
- **ser2net:** pfv-tsys4, TCP ports 2001-2007 on Tailscale IP
|
||||
- **ser2net:** pfv-tsys4, TCP ports 2001-2006 on Tailscale IP
|
||||
(do NOT connect to ser2net directly — it conflicts with conman's
|
||||
persistent sessions; always use the conman client)
|
||||
- **Script:** [`proxmox/perf/scripts/conman-console.py`](proxmox/perf/scripts/conman-console.py)
|
||||
@@ -266,18 +266,17 @@ stack on pfv-tsys4.
|
||||
```bash
|
||||
# Pull a switch config (example):
|
||||
CONMAN_SERVER=100.70.77.93:7890 python3 proxmox/perf/scripts/conman-console.py \
|
||||
--console pfv-core-sw01 --cmds netinfra/switches/pfv-core-sw01.cmds
|
||||
--console pfv-r5-core-01 --cmds netinfra/switches/pfv-r5-core-01.cmds
|
||||
```
|
||||
|
||||
| Console name | TCP port | Device |
|
||||
|--------------|----------|--------|
|
||||
| pfv-core-sw01 | 2001 | Dell PowerConnect 5448 (core, rack 5) |
|
||||
| pfv-tor3-mgmt | 2002 | Dell PowerConnect 5324 (rack 3 mgmt TOR) |
|
||||
| pfv-tor3-stor | 2003 | Dell PowerConnect 5324 (rack 3 storage TOR) |
|
||||
| pfv-r5-core-01 | 2001 | Dell PowerConnect 5448 (rack 5 core, mgmt+storage) |
|
||||
| pfv-r3-tor-mgmt-01 | 2002 | Dell PowerConnect 5324 (rack 3 mgmt TOR) |
|
||||
| pfv-r3-tor-stor-01 | 2003 | Dell PowerConnect 5324 (rack 3 storage TOR) |
|
||||
| pfv-rrinfra-rtr | 2004 | Cisco router (rrinfra) |
|
||||
| pfv-r2-tor-top | 2005 | Rack 2 top-of-rack switch |
|
||||
| subodev-torsw | 2006 | Suborbital device TOR switch |
|
||||
| pfv-r2-sw | 2007 | Rack 2 old Dell switch |
|
||||
| pfv-r2-tor-01 | 2005 | Rack 2 TOR switch |
|
||||
| pfv-r6-mgmt-01 | 2006 | Rack 6 management switch |
|
||||
|
||||
## Mandatory: Document ALL Infrastructure Changes
|
||||
|
||||
@@ -333,7 +332,7 @@ bash netinfra/dns-cluster-setup/remote-dns.sh netinfra01-root 'systemctl status
|
||||
|
||||
# Switch console (read-only config pull):
|
||||
CONMAN_SERVER=100.70.77.93:7890 python3 proxmox/perf/scripts/conman-console.py \
|
||||
--console pfv-core-sw01 --cmds netinfra/switches/pfv-core-sw01.cmds
|
||||
--console pfv-r5-core-01 --cmds netinfra/switches/pfv-r5-core-01.cmds
|
||||
```
|
||||
|
||||
## Credential Management
|
||||
|
||||
+1
-2
@@ -1,9 +1,8 @@
|
||||
# WORKING.md — Active Session Tracker
|
||||
|
||||
Agent work only. The human decides when it's done.
|
||||
The todos tool is banned; this is the only task tracker.
|
||||
A commit is blocked while any task below remains unchecked.
|
||||
|
||||
## Current Tasks
|
||||
|
||||
(none — all agent work is committed)
|
||||
- [x] Switch rename Phase 4-5: mapping.txt + conman/ser2net/udev + repo files
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
# config files. This is the fix for the USB enumeration shift problem:
|
||||
#
|
||||
# 1. udev rules pin each adapter by its STABLE ID_PATH (physical USB port)
|
||||
# to a named symlink like /dev/consoles/pfv-core-sw01
|
||||
# to a named symlink like /dev/consoles/pfv-r5-core-01
|
||||
# 2. ser2net opens those stable symlinks and exposes them on TCP ports
|
||||
# (2001, 2002, ...) bound to the Tailscale IP
|
||||
# 3. conman connects to those TCP ports for logging + multiplexing
|
||||
|
||||
@@ -17,13 +17,13 @@
|
||||
# 2. Update the id_path_substring in this file
|
||||
# 3. Run: bash console/generate-config.sh && udevadm trigger && systemctl restart ser2net conmand
|
||||
#
|
||||
2001|pfv-core-sw01|usb-0:1.5.4.4|9600n81|Dell PowerConnect 5448 (core switch)
|
||||
2002|pfv-tor3-mgmt|usb-0:1.6.3.1|9600n81|Rack 3 management TOR switch
|
||||
2003|pfv-tor3-stor|usb-0:1.6.3.3.2|9600n81|Rack 3 storage TOR switch
|
||||
2001|pfv-r5-core-01|usb-0:1.5.4.4|9600n81|Dell PowerConnect 5448 (rack 5 core switch)
|
||||
2002|pfv-r3-tor-mgmt-01|usb-0:1.6.3.1|9600n81|Rack 3 management TOR switch
|
||||
2003|pfv-r3-tor-stor-01|usb-0:1.6.3.3.2|9600n81|Rack 3 storage TOR switch
|
||||
2004|pfv-rrinfra-rtr|usb-0:1.6.3.3.1|9600n81|Cisco router (rrinfra)
|
||||
2005|pfv-r2-tor-top|usb-0:1.6.3.3.3|9600n81|Rack 2 top-of-rack switch
|
||||
2006|subodev-torsw|usb-0:1.5.4.1|9600n81|Suborbital device TOR switch
|
||||
2007|pfv-r2-sw|usb-0:1.6.3.2|9600n81|Rack 2 old Dell switch
|
||||
2005|pfv-r2-tor-01|usb-0:1.6.3.3.3|9600n81|Rack 2 TOR switch
|
||||
2006|pfv-r6-mgmt-01|usb-0:1.5.4.1|9600n81|Rack 6 management switch
|
||||
# 2007|pfv-r2-sw|usb-0:1.6.3.2|9600n81|Rack 2 old Dell switch (dead, removed)
|
||||
# Unassigned (no device detected):
|
||||
# 2008|spare-1|usb-0:1.6.3.4|9600n81|Empty / spare
|
||||
# 2009|spare-2|usb-0:1.6.3.3.4|9600n81|Empty / spare
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#
|
||||
# Usage:
|
||||
# bash console/query-remote.sh # list consoles
|
||||
# bash console/query-remote.sh pfv-core-sw01 # connect to a console
|
||||
# bash console/query-remote.sh pfv-r5-core-01 # connect to a console
|
||||
#
|
||||
set -euo pipefail
|
||||
|
||||
@@ -52,7 +52,7 @@ if [ -z "$CONSOLE" ]; then
|
||||
conman -d "${REMOTE_HOST}:${REMOTE_PORT}" -q
|
||||
echo ""
|
||||
echo "To connect: bash $0 <console-name>"
|
||||
echo " e.g: bash $0 pfv-core-sw01"
|
||||
echo " e.g: bash $0 pfv-r5-core-01"
|
||||
else
|
||||
echo ""
|
||||
echo "--- Connecting to: $CONSOLE ---"
|
||||
|
||||
@@ -202,7 +202,7 @@ echo " ser2net owns serial devices, exposes telnet(rfc2217) TCP ports"
|
||||
echo " conman connects via telnet for logging + multiplexing"
|
||||
echo ""
|
||||
echo " Connect from any Tailscale workstation:"
|
||||
echo " conman -d pfv-tsys4:7890 -f pfv-core-sw01"
|
||||
echo " conman -d pfv-tsys4:7890 -f pfv-r5-core-01"
|
||||
echo " conman -d pfv-tsys4:7890 -q # list consoles"
|
||||
echo ""
|
||||
echo " Direct telnet (emergency, conflicts with conman):"
|
||||
|
||||
@@ -45,7 +45,7 @@ echo "--- 3. Trigger log capture: connect to each console briefly ---"
|
||||
echo " conmand connects to all consoles on startup. Checking if logs exist..."
|
||||
echo ""
|
||||
echo "--- 4. Log file inventory ---"
|
||||
for name in pfv-core-sw01 pfv-tor3-mgmt pfv-tor3-stor pfv-rrinfra-rtr pfv-r2-tor-top subodev-torsw pfv-r2-sw; do
|
||||
for name in pfv-r5-core-01 pfv-r3-tor-mgmt-01 pfv-r3-tor-stor-01 pfv-rrinfra-rtr pfv-r2-tor-01 pfv-r6-mgmt-01; do
|
||||
logfile="$LOGDIR/${name}.log"
|
||||
if [ -f "$logfile" ]; then
|
||||
SIZE=$(stat -c%s "$logfile" 2>/dev/null || echo 0)
|
||||
|
||||
@@ -61,7 +61,7 @@ subnet 192.168.0.0 netmask 255.255.252.0 {
|
||||
hardware ethernet 00:0d:56:41:7a:4d;
|
||||
fixed-address 192.168.0.10;
|
||||
}
|
||||
host pfv-core-sw01 {
|
||||
host pfv-r5-core-01 {
|
||||
hardware ethernet a4:ba:db:6f:ce:28;
|
||||
fixed-address 192.168.0.12;
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ subnet 192.168.0.0 netmask 255.255.252.0 {
|
||||
hardware ethernet 00:0d:56:41:7a:4d;
|
||||
fixed-address 192.168.0.10;
|
||||
}
|
||||
host pfv-core-sw01 {
|
||||
host pfv-r5-core-01 {
|
||||
hardware ethernet a4:ba:db:6f:ce:28;
|
||||
fixed-address 192.168.0.12;
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
! pfv-tor3-stor — MAC table + port details (Dell PowerConnect 5324 commands)
|
||||
! pfv-r3-tor-stor-01 — MAC table + port details (Dell PowerConnect 5324 commands)
|
||||
enable
|
||||
show bridge addressing-table address
|
||||
show interfaces description
|
||||
@@ -1,4 +1,4 @@
|
||||
! pfv-tor3-stor — Neyland 24T (Radlan-based, rack 3 storage TOR)
|
||||
! pfv-r3-tor-stor-01 — Neyland 24T (Radlan-based, rack 3 storage TOR)
|
||||
! Radlan CLI uses different keywords than DNOS
|
||||
enable
|
||||
show system
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
! pfv-core-sw01 — MAC address table + LLDP neighbors
|
||||
! pfv-r5-core-01 — MAC address table + LLDP neighbors
|
||||
terminal datadump
|
||||
enable
|
||||
show mac-address-table
|
||||
@@ -1,4 +1,4 @@
|
||||
! pfv-core-sw01 — Dell PowerConnect 5448 (core switch, rack 5)
|
||||
! pfv-r5-core-01 — Dell PowerConnect 5448 (core switch, rack 5)
|
||||
! Need running-config to diagnose ch1 port mismatch (g16 up but not in LAG, g17 down)
|
||||
terminal datadump
|
||||
enable
|
||||
@@ -288,6 +288,6 @@ echo "===== CONTEXT ====="
|
||||
echo "tsys4: USB cdc_ncm dongle (single 1G link, no bond)"
|
||||
echo "tsys5: bond0 broken (1 active slave, no LACP partner) — cable pending"
|
||||
echo "tsys6/7: working 2x1G LACP, layer3+4 hash (host side)"
|
||||
echo "Cross-rack: 4x1G LACP (pfv-r3-tor-stor → pfv-core-sw01)"
|
||||
echo "Cross-rack: 4x1G LACP (pfv-r3-tor-stor-01 → pfv-r5-core-01)"
|
||||
echo ""
|
||||
echo "All logs in: $LOG_DIR/"
|
||||
|
||||
@@ -22,7 +22,7 @@ any network with a conman server:
|
||||
|
||||
Usage:
|
||||
CONMAN_SERVER=console-host:7890 \\
|
||||
python3 conman-console.py --console pfv-core-sw01 --cmds switches/pfv-core-sw01.cmds
|
||||
python3 conman-console.py --console pfv-r5-core-01 --cmds switches/pfv-r5-core-01.cmds
|
||||
|
||||
Lines starting with '!' or '#' in the cmds file are comments (skipped).
|
||||
Blank lines are skipped. The conman escape sequence (&.) is sent automatically
|
||||
@@ -51,7 +51,7 @@ def main():
|
||||
ap = argparse.ArgumentParser(
|
||||
description="Drive a conman console session read-only via PTY")
|
||||
ap.add_argument("--console", required=True,
|
||||
help="console name (e.g. pfv-core-sw01)")
|
||||
help="console name (e.g. pfv-r5-core-01)")
|
||||
ap.add_argument("--cmds", required=True,
|
||||
help="command file (one command per line; !/# = comment)")
|
||||
ap.add_argument("--server",
|
||||
|
||||
Reference in New Issue
Block a user