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.
|
stack on pfv-tsys4.
|
||||||
|
|
||||||
- **conmand server:** pfv-tsys4 (Tailscale `100.70.77.93`, port 7890)
|
- **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
|
(do NOT connect to ser2net directly — it conflicts with conman's
|
||||||
persistent sessions; always use the conman client)
|
persistent sessions; always use the conman client)
|
||||||
- **Script:** [`proxmox/perf/scripts/conman-console.py`](proxmox/perf/scripts/conman-console.py)
|
- **Script:** [`proxmox/perf/scripts/conman-console.py`](proxmox/perf/scripts/conman-console.py)
|
||||||
@@ -266,18 +266,17 @@ stack on pfv-tsys4.
|
|||||||
```bash
|
```bash
|
||||||
# Pull a switch config (example):
|
# Pull a switch config (example):
|
||||||
CONMAN_SERVER=100.70.77.93:7890 python3 proxmox/perf/scripts/conman-console.py \
|
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 |
|
| Console name | TCP port | Device |
|
||||||
|--------------|----------|--------|
|
|--------------|----------|--------|
|
||||||
| pfv-core-sw01 | 2001 | Dell PowerConnect 5448 (core, rack 5) |
|
| pfv-r5-core-01 | 2001 | Dell PowerConnect 5448 (rack 5 core, mgmt+storage) |
|
||||||
| pfv-tor3-mgmt | 2002 | Dell PowerConnect 5324 (rack 3 mgmt TOR) |
|
| pfv-r3-tor-mgmt-01 | 2002 | Dell PowerConnect 5324 (rack 3 mgmt TOR) |
|
||||||
| pfv-tor3-stor | 2003 | Dell PowerConnect 5324 (rack 3 storage TOR) |
|
| pfv-r3-tor-stor-01 | 2003 | Dell PowerConnect 5324 (rack 3 storage TOR) |
|
||||||
| pfv-rrinfra-rtr | 2004 | Cisco router (rrinfra) |
|
| pfv-rrinfra-rtr | 2004 | Cisco router (rrinfra) |
|
||||||
| pfv-r2-tor-top | 2005 | Rack 2 top-of-rack switch |
|
| pfv-r2-tor-01 | 2005 | Rack 2 TOR switch |
|
||||||
| subodev-torsw | 2006 | Suborbital device TOR switch |
|
| pfv-r6-mgmt-01 | 2006 | Rack 6 management switch |
|
||||||
| pfv-r2-sw | 2007 | Rack 2 old Dell switch |
|
|
||||||
|
|
||||||
## Mandatory: Document ALL Infrastructure Changes
|
## 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):
|
# Switch console (read-only config pull):
|
||||||
CONMAN_SERVER=100.70.77.93:7890 python3 proxmox/perf/scripts/conman-console.py \
|
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
|
## Credential Management
|
||||||
|
|||||||
+1
-2
@@ -1,9 +1,8 @@
|
|||||||
# WORKING.md — Active Session Tracker
|
# WORKING.md — Active Session Tracker
|
||||||
|
|
||||||
Agent work only. The human decides when it's done.
|
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.
|
A commit is blocked while any task below remains unchecked.
|
||||||
|
|
||||||
## Current Tasks
|
## 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:
|
# 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)
|
# 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
|
# 2. ser2net opens those stable symlinks and exposes them on TCP ports
|
||||||
# (2001, 2002, ...) bound to the Tailscale IP
|
# (2001, 2002, ...) bound to the Tailscale IP
|
||||||
# 3. conman connects to those TCP ports for logging + multiplexing
|
# 3. conman connects to those TCP ports for logging + multiplexing
|
||||||
|
|||||||
@@ -17,13 +17,13 @@
|
|||||||
# 2. Update the id_path_substring in this file
|
# 2. Update the id_path_substring in this file
|
||||||
# 3. Run: bash console/generate-config.sh && udevadm trigger && systemctl restart ser2net conmand
|
# 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)
|
2001|pfv-r5-core-01|usb-0:1.5.4.4|9600n81|Dell PowerConnect 5448 (rack 5 core switch)
|
||||||
2002|pfv-tor3-mgmt|usb-0:1.6.3.1|9600n81|Rack 3 management TOR switch
|
2002|pfv-r3-tor-mgmt-01|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
|
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)
|
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
|
2005|pfv-r2-tor-01|usb-0:1.6.3.3.3|9600n81|Rack 2 TOR switch
|
||||||
2006|subodev-torsw|usb-0:1.5.4.1|9600n81|Suborbital device 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
|
# 2007|pfv-r2-sw|usb-0:1.6.3.2|9600n81|Rack 2 old Dell switch (dead, removed)
|
||||||
# Unassigned (no device detected):
|
# Unassigned (no device detected):
|
||||||
# 2008|spare-1|usb-0:1.6.3.4|9600n81|Empty / spare
|
# 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
|
# 2009|spare-2|usb-0:1.6.3.3.4|9600n81|Empty / spare
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
#
|
#
|
||||||
# Usage:
|
# Usage:
|
||||||
# bash console/query-remote.sh # list consoles
|
# 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
|
set -euo pipefail
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ if [ -z "$CONSOLE" ]; then
|
|||||||
conman -d "${REMOTE_HOST}:${REMOTE_PORT}" -q
|
conman -d "${REMOTE_HOST}:${REMOTE_PORT}" -q
|
||||||
echo ""
|
echo ""
|
||||||
echo "To connect: bash $0 <console-name>"
|
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
|
else
|
||||||
echo ""
|
echo ""
|
||||||
echo "--- Connecting to: $CONSOLE ---"
|
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 " conman connects via telnet for logging + multiplexing"
|
||||||
echo ""
|
echo ""
|
||||||
echo " Connect from any Tailscale workstation:"
|
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 " conman -d pfv-tsys4:7890 -q # list consoles"
|
||||||
echo ""
|
echo ""
|
||||||
echo " Direct telnet (emergency, conflicts with conman):"
|
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 " conmand connects to all consoles on startup. Checking if logs exist..."
|
||||||
echo ""
|
echo ""
|
||||||
echo "--- 4. Log file inventory ---"
|
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"
|
logfile="$LOGDIR/${name}.log"
|
||||||
if [ -f "$logfile" ]; then
|
if [ -f "$logfile" ]; then
|
||||||
SIZE=$(stat -c%s "$logfile" 2>/dev/null || echo 0)
|
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;
|
hardware ethernet 00:0d:56:41:7a:4d;
|
||||||
fixed-address 192.168.0.10;
|
fixed-address 192.168.0.10;
|
||||||
}
|
}
|
||||||
host pfv-core-sw01 {
|
host pfv-r5-core-01 {
|
||||||
hardware ethernet a4:ba:db:6f:ce:28;
|
hardware ethernet a4:ba:db:6f:ce:28;
|
||||||
fixed-address 192.168.0.12;
|
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;
|
hardware ethernet 00:0d:56:41:7a:4d;
|
||||||
fixed-address 192.168.0.10;
|
fixed-address 192.168.0.10;
|
||||||
}
|
}
|
||||||
host pfv-core-sw01 {
|
host pfv-r5-core-01 {
|
||||||
hardware ethernet a4:ba:db:6f:ce:28;
|
hardware ethernet a4:ba:db:6f:ce:28;
|
||||||
fixed-address 192.168.0.12;
|
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
|
enable
|
||||||
show bridge addressing-table address
|
show bridge addressing-table address
|
||||||
show interfaces description
|
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
|
! Radlan CLI uses different keywords than DNOS
|
||||||
enable
|
enable
|
||||||
show system
|
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
|
terminal datadump
|
||||||
enable
|
enable
|
||||||
show mac-address-table
|
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)
|
! Need running-config to diagnose ch1 port mismatch (g16 up but not in LAG, g17 down)
|
||||||
terminal datadump
|
terminal datadump
|
||||||
enable
|
enable
|
||||||
@@ -288,6 +288,6 @@ echo "===== CONTEXT ====="
|
|||||||
echo "tsys4: USB cdc_ncm dongle (single 1G link, no bond)"
|
echo "tsys4: USB cdc_ncm dongle (single 1G link, no bond)"
|
||||||
echo "tsys5: bond0 broken (1 active slave, no LACP partner) — cable pending"
|
echo "tsys5: bond0 broken (1 active slave, no LACP partner) — cable pending"
|
||||||
echo "tsys6/7: working 2x1G LACP, layer3+4 hash (host side)"
|
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 ""
|
||||||
echo "All logs in: $LOG_DIR/"
|
echo "All logs in: $LOG_DIR/"
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ any network with a conman server:
|
|||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
CONMAN_SERVER=console-host:7890 \\
|
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).
|
Lines starting with '!' or '#' in the cmds file are comments (skipped).
|
||||||
Blank lines are skipped. The conman escape sequence (&.) is sent automatically
|
Blank lines are skipped. The conman escape sequence (&.) is sent automatically
|
||||||
@@ -51,7 +51,7 @@ def main():
|
|||||||
ap = argparse.ArgumentParser(
|
ap = argparse.ArgumentParser(
|
||||||
description="Drive a conman console session read-only via PTY")
|
description="Drive a conman console session read-only via PTY")
|
||||||
ap.add_argument("--console", required=True,
|
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,
|
ap.add_argument("--cmds", required=True,
|
||||||
help="command file (one command per line; !/# = comment)")
|
help="command file (one command per line; !/# = comment)")
|
||||||
ap.add_argument("--server",
|
ap.add_argument("--server",
|
||||||
|
|||||||
Reference in New Issue
Block a user