diff --git a/AGENTS.md b/AGENTS.md index 4a81863..1c42e11 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -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 diff --git a/WORKING.md b/WORKING.md index 59c38a5..74d76fb 100644 --- a/WORKING.md +++ b/WORKING.md @@ -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 diff --git a/dcinfra/console/generate-config.sh b/dcinfra/console/generate-config.sh index a61b9ad..c3b0ed4 100644 --- a/dcinfra/console/generate-config.sh +++ b/dcinfra/console/generate-config.sh @@ -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 diff --git a/dcinfra/console/mapping.txt b/dcinfra/console/mapping.txt index 4a3fba9..c1033b2 100644 --- a/dcinfra/console/mapping.txt +++ b/dcinfra/console/mapping.txt @@ -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 diff --git a/dcinfra/console/query-remote.sh b/dcinfra/console/query-remote.sh index cd539e6..eb5283b 100644 --- a/dcinfra/console/query-remote.sh +++ b/dcinfra/console/query-remote.sh @@ -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 " - echo " e.g: bash $0 pfv-core-sw01" + echo " e.g: bash $0 pfv-r5-core-01" else echo "" echo "--- Connecting to: $CONSOLE ---" diff --git a/dcinfra/console/setup.sh b/dcinfra/console/setup.sh index 5da0536..3b331bd 100644 --- a/dcinfra/console/setup.sh +++ b/dcinfra/console/setup.sh @@ -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):" diff --git a/dcinfra/console/validate-conman.sh b/dcinfra/console/validate-conman.sh index 10f1c00..c3a27bd 100644 --- a/dcinfra/console/validate-conman.sh +++ b/dcinfra/console/validate-conman.sh @@ -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) diff --git a/netinfra/dhcp/dhcpd-primary.conf b/netinfra/dhcp/dhcpd-primary.conf index 3a75a53..d91c85d 100644 --- a/netinfra/dhcp/dhcpd-primary.conf +++ b/netinfra/dhcp/dhcpd-primary.conf @@ -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; } diff --git a/netinfra/dhcp/dhcpd-secondary.conf b/netinfra/dhcp/dhcpd-secondary.conf index bac70d8..1947092 100644 --- a/netinfra/dhcp/dhcpd-secondary.conf +++ b/netinfra/dhcp/dhcpd-secondary.conf @@ -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; } diff --git a/netinfra/switches/pfv-tor3-stor-mac.cmds b/netinfra/switches/pfv-r3-tor-stor-01-mac.cmds similarity index 53% rename from netinfra/switches/pfv-tor3-stor-mac.cmds rename to netinfra/switches/pfv-r3-tor-stor-01-mac.cmds index 7bd9b5f..8dbb621 100644 --- a/netinfra/switches/pfv-tor3-stor-mac.cmds +++ b/netinfra/switches/pfv-r3-tor-stor-01-mac.cmds @@ -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 diff --git a/netinfra/switches/pfv-tor3-stor.cmds b/netinfra/switches/pfv-r3-tor-stor-01.cmds similarity index 74% rename from netinfra/switches/pfv-tor3-stor.cmds rename to netinfra/switches/pfv-r3-tor-stor-01.cmds index 732517f..e178415 100644 --- a/netinfra/switches/pfv-tor3-stor.cmds +++ b/netinfra/switches/pfv-r3-tor-stor-01.cmds @@ -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 diff --git a/netinfra/switches/pfv-core-sw01-mac.cmds b/netinfra/switches/pfv-r5-core-01-mac.cmds similarity index 68% rename from netinfra/switches/pfv-core-sw01-mac.cmds rename to netinfra/switches/pfv-r5-core-01-mac.cmds index 97ec28c..05fa841 100644 --- a/netinfra/switches/pfv-core-sw01-mac.cmds +++ b/netinfra/switches/pfv-r5-core-01-mac.cmds @@ -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 diff --git a/netinfra/switches/pfv-core-sw01.cmds b/netinfra/switches/pfv-r5-core-01.cmds similarity index 74% rename from netinfra/switches/pfv-core-sw01.cmds rename to netinfra/switches/pfv-r5-core-01.cmds index bd73bf5..a139127 100644 --- a/netinfra/switches/pfv-core-sw01.cmds +++ b/netinfra/switches/pfv-r5-core-01.cmds @@ -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 diff --git a/proxmox/perf/iperf-full-matrix.sh b/proxmox/perf/iperf-full-matrix.sh index ea352e9..07a4442 100755 --- a/proxmox/perf/iperf-full-matrix.sh +++ b/proxmox/perf/iperf-full-matrix.sh @@ -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/" diff --git a/proxmox/perf/scripts/conman-console.py b/proxmox/perf/scripts/conman-console.py index 9516fff..8005546 100644 --- a/proxmox/perf/scripts/conman-console.py +++ b/proxmox/perf/scripts/conman-console.py @@ -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",