fix(cmdb): canonical CI names — s7 rename map in seed generator [#705]

from-inventory.sh now applies the #307 s7 VM-name -> Tailscale-name
mapping (two-pass awk), so rr-middleware-01/preprod-proxmoxmailgw rows
emit canonical names. Seed regenerated; GLPI renames + dup purges done
in same session (78 CIs at parity).

Detail: https://projects.knownelement.com/issues/705
This commit is contained in:
2026-09-03 14:22:05 -05:00
parent 8666182d8b
commit a07d866116
2 changed files with 25 additions and 10 deletions
+22 -7
View File
@@ -21,7 +21,11 @@ echo 'category,ci_name,host_node,vmid,specs,ts_ip,extra_ip,tuned,access,extra,st
awk -F'|' ' awk -F'|' '
function trim(s) { gsub(/^[ \t]+|[ \t]+$/, "", s); return s } function trim(s) { gsub(/^[ \t]+|[ \t]+$/, "", s); return s }
function csv(s) { gsub(/"/, "", s); return "\"" trim(s) "\"" } function strip(s) { gsub(/"/, "", s); return trim(s) }
function csv(s) { gsub(/"/, "", s); return "\"" trim(s)"\"" }
# canon(s) — apply the section-7 VM-name -> Tailscale/DNS-name map so
# ci_name always uses the canonical fleet name [#705]
function canon(s) { s = strip(s); return (s in map) ? map[s] : s }
/^## / { /^## / {
sec = substr($0, 4) sec = substr($0, 4)
sub(/\(.*/, "", sec) sub(/\(.*/, "", sec)
@@ -29,6 +33,17 @@ awk -F'|' '
next next
} }
/^\|/ { /^\|/ {
# pass 1 (same file read twice): capture only the section-7 rename map
if (FNR == NR) {
if (sec ~ /^7\./) {
for (i = 1; i <= NF; i++) f[i] = trim($i)
if (f[2] == "" || f[2] ~ /^-+$/ || f[2] == "VM Name") next
key = f[2]; sub(/[ (].*/, "", key)
map[key] = trim(f[3])
}
next
}
if (sec ~ /^7\./) next
if (sec !~ /^[1-6]\./) next if (sec !~ /^[1-6]\./) next
for (i = 1; i <= NF; i++) f[i] = trim($i) for (i = 1; i <= NF; i++) f[i] = trim($i)
if (f[2] == "" || f[2] ~ /^-+$/) next if (f[2] == "" || f[2] ~ /^-+$/) next
@@ -36,29 +51,29 @@ awk -F'|' '
status = (index($0, "RETIRED") > 0) ? "retired" : "active" status = (index($0, "RETIRED") > 0) ? "retired" : "active"
if (sec ~ /^1\./) if (sec ~ /^1\./)
printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n", printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n",
"hypervisor", csv(f[2]), "", "", "hypervisor", csv(canon(f[2])), "", "",
csv(f[3] "; CPU " f[4] "; RAM " f[5]), csv(f[6]), csv(f[8]), csv(f[3] "; CPU " f[4] "; RAM " f[5]), csv(f[6]), csv(f[8]),
csv(f[9]), csv(f[10]), csv("mgmt " f[7]), status, csv("307 s1") csv(f[9]), csv(f[10]), csv("mgmt " f[7]), status, csv("307 s1")
else if (sec ~ /^2\./) else if (sec ~ /^2\./)
printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n", printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n",
"vm-prod", csv(f[3]), csv(f[4]), csv(f[2]), "vm-prod", csv(canon(f[3])), csv(f[4]), csv(f[2]),
csv("CPU " f[5] "; RAM " f[6] "; TS? " f[7]), csv(f[8]), "", csv("CPU " f[5] "; RAM " f[6] "; TS? " f[7]), csv(f[8]), "",
csv(f[10]), csv(f[9]), "", status, csv("307 s2") csv(f[10]), csv(f[9]), "", status, csv("307 s2")
else if (sec ~ /^3\./) else if (sec ~ /^3\./)
printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n", printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n",
"vm-sectestbed", csv(f[3]), "pfv-tsys5", csv(f[2]), "", csv(f[5]), "vm-sectestbed", csv(canon(f[3])), "pfv-tsys5", csv(f[2]), "", csv(f[5]),
"", csv(f[7]), csv(f[6]), "", status, csv("307 s3") "", csv(f[7]), csv(f[6]), "", status, csv("307 s3")
else if (sec ~ /^4\./) else if (sec ~ /^4\./)
printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n", printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n",
"vm-preprod", csv(f[3]), "pfv-tsys5", csv(f[2]), "", csv(f[5]), "vm-preprod", csv(canon(f[3])), "pfv-tsys5", csv(f[2]), "", csv(f[5]),
"", csv(f[7]), csv(f[6]), "", status, csv("307 s4") "", csv(f[7]), csv(f[6]), "", status, csv("307 s4")
else if (sec ~ /^5\./) else if (sec ~ /^5\./)
printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n", printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n",
"physical-sbc", csv(f[2]), "", "", "", csv(f[3]), "", "physical-sbc", csv(canon(f[2])), "", "", "", csv(f[3]), "",
"", csv(f[5]), csv("dns " f[4]), status, csv("307 s5") "", csv(f[5]), csv("dns " f[4]), status, csv("307 s5")
else if (sec ~ /^6\./) else if (sec ~ /^6\./)
printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n", printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n",
"stale-dns-record", csv(f[2]), "", "", "", "", "", "stale-dns-record", csv(f[2]), "", "", "", "", "",
"", "", "", "retired", csv("307 s6: " f[4]) "", "", "", "retired", csv("307 s6: " f[4])
} }
' "$1" ' "$1" "$1"
+3 -3
View File
@@ -26,7 +26,7 @@ vm-prod,"pfv-k8s-cnode3","tsys6","603","CPU 4c; RAM 4GB; TS? Yes","100.106.222.1
vm-prod,"tsys-proxmox-mailgw-01","tsys6","604","CPU 2c; RAM 4GB; TS? No (DNS: 100.68.129.71)","-",,"-","NO",,active,"307 s2" vm-prod,"tsys-proxmox-mailgw-01","tsys6","604","CPU 2c; RAM 4GB; TS? No (DNS: 100.68.129.71)","-",,"-","NO",,active,"307 s2"
vm-prod,"pfv-k8s-wnode-tsys7","tsys7","701","CPU 2c; RAM 98GB; TS? Yes","100.119.240.11",,"-","localuser",,active,"307 s2" vm-prod,"pfv-k8s-wnode-tsys7","tsys7","701","CPU 2c; RAM 98GB; TS? Yes","100.119.240.11",,"-","localuser",,active,"307 s2"
vm-prod,"hfnoc-uisp","tsys7","702","CPU 2c; RAM 8GB; TS? Yes","100.94.188.89",,"-","NO",,active,"307 s2" vm-prod,"hfnoc-uisp","tsys7","702","CPU 2c; RAM 8GB; TS? Yes","100.94.188.89",,"-","NO",,active,"307 s2"
vm-prod,"rr-middleware-01","tsys7","703","CPU 2c; RAM 6GB; TS? Yes","100.106.54.59",,"-","NO",,active,"307 s2" vm-prod,"pfv-rr-middleware-01","tsys7","703","CPU 2c; RAM 6GB; TS? Yes","100.106.54.59",,"-","NO",,active,"307 s2"
vm-prod,"pfv-k8s-cnode2","tsys7","705","CPU 4c; RAM 4GB; TS? Yes","100.109.34.72",,"network-latency","localuser",,active,"307 s2" vm-prod,"pfv-k8s-cnode2","tsys7","705","CPU 4c; RAM 4GB; TS? Yes","100.109.34.72",,"network-latency","localuser",,active,"307 s2"
vm-prod,"kali-rd","tsys7","706","CPU 2c; RAM 6GB; TS? Yes","100.105.136.23",,"-","NO",,active,"307 s2" vm-prod,"kali-rd","tsys7","706","CPU 2c; RAM 6GB; TS? Yes","100.105.136.23",,"-","NO",,active,"307 s2"
vm-prod,"tsys-siem","tsys7","707","CPU 2c; RAM 8GB; TS? No (DNS: 100.72.35.113)","-",,"-","NO",,active,"307 s2" vm-prod,"tsys-siem","tsys7","707","CPU 2c; RAM 8GB; TS? No (DNS: 100.72.35.113)","-",,"-","NO",,active,"307 s2"
@@ -56,7 +56,7 @@ vm-sectestbed,"sectestbed-voip",pfv-tsys5,"51016",,"100.86.176.105",,"-","NO",,a
vm-preprod,"preprod-awx",pfv-tsys5,"53100",,"100.77.216.36",,"-","NO",,active,"307 s4" vm-preprod,"preprod-awx",pfv-tsys5,"53100",,"100.77.216.36",,"-","NO",,active,"307 s4"
vm-preprod,"preprod-siem",pfv-tsys5,"53101",,"100.98.162.14",,"-","NO",,active,"307 s4" vm-preprod,"preprod-siem",pfv-tsys5,"53101",,"100.98.162.14",,"-","NO",,active,"307 s4"
vm-preprod,"preprod-rancherplatform",pfv-tsys5,"53102",,"100.126.231.121",,"-","NO",,active,"307 s4" vm-preprod,"preprod-rancherplatform",pfv-tsys5,"53102",,"100.126.231.121",,"-","NO",,active,"307 s4"
vm-preprod,"preprod-proxmoxmailgw",pfv-tsys5,"53103",,"100.114.9.49",,"-","NO",,active,"307 s4" vm-preprod,"preprod-proxmox-mailgw",pfv-tsys5,"53103",,"100.114.9.49",,"-","NO",,active,"307 s4"
vm-preprod,"preprod-ca",pfv-tsys5,"53104",,"100.94.119.5",,"-","NO",,active,"307 s4" vm-preprod,"preprod-ca",pfv-tsys5,"53104",,"100.94.119.5",,"-","NO",,active,"307 s4"
vm-preprod,"preprod-proxmox-datacenter",pfv-tsys5,"53105",,"100.101.250.10",,"-","NO",,active,"307 s4" vm-preprod,"preprod-proxmox-datacenter",pfv-tsys5,"53105",,"100.101.250.10",,"-","NO",,active,"307 s4"
vm-preprod,"preprod-librenms",pfv-tsys5,"53106",,"100.79.52.34",,"-","NO",,active,"307 s4" vm-preprod,"preprod-librenms",pfv-tsys5,"53106",,"100.79.52.34",,"-","NO",,active,"307 s4"
@@ -73,4 +73,4 @@ physical-sbc,"stlp-3dscanner",,,,"100.125.14.37",,,"OFFLINE 184d","dns stlp-3dsc
physical-sbc,"tailscale-router",,,,"-",,,"**RETIRED 2026-09-02** — subnet-router role replaced by pfv-netinfra-01/02; host removed from tailnet; no DNS records remain","dns ~~tailscale-router.knel.net (100.103.48.57)~~",retired,"307 s5" physical-sbc,"tailscale-router",,,,"-",,,"**RETIRED 2026-09-02** — subnet-router role replaced by pfv-netinfra-01/02; host removed from tailnet; no DNS records remain","dns ~~tailscale-router.knel.net (100.103.48.57)~~",retired,"307 s5"
physical-sbc,"netbird",,,,"100.123.45.23",,,"NetBird VPN","dns -",active,"307 s5" physical-sbc,"netbird",,,,"100.123.45.23",,,"NetBird VPN","dns -",active,"307 s5"
physical-sbc,"pfv-proxmox-backup-server",,,,"100.114.81.107",,,"PBS","dns pfv-proxmox-backup-server.knel.net",active,"307 s5" physical-sbc,"pfv-proxmox-backup-server",,,,"100.114.81.107",,,"PBS","dns pfv-proxmox-backup-server.knel.net",active,"307 s5"
physical-sbc,"siter-bizoffice",,,,"100.96.130.53",,,"WINDOWS (not Linux)","dns stlpc-bizoffice.knel.net",active,"307 s5" physical-sbc,"stlpc-bizoffice",,,,"100.96.130.53",,,"WINDOWS (not Linux)","dns stlpc-bizoffice.knel.net",active,"307 s5"
1 category ci_name host_node vmid specs ts_ip extra_ip tuned access extra status source_section
26 vm-prod tsys-proxmox-mailgw-01 tsys6 604 CPU 2c; RAM 4GB; TS? No (DNS: 100.68.129.71) - - NO active 307 s2
27 vm-prod pfv-k8s-wnode-tsys7 tsys7 701 CPU 2c; RAM 98GB; TS? Yes 100.119.240.11 - localuser active 307 s2
28 vm-prod hfnoc-uisp tsys7 702 CPU 2c; RAM 8GB; TS? Yes 100.94.188.89 - NO active 307 s2
29 vm-prod rr-middleware-01 pfv-rr-middleware-01 tsys7 703 CPU 2c; RAM 6GB; TS? Yes 100.106.54.59 - NO active 307 s2
30 vm-prod pfv-k8s-cnode2 tsys7 705 CPU 4c; RAM 4GB; TS? Yes 100.109.34.72 network-latency localuser active 307 s2
31 vm-prod kali-rd tsys7 706 CPU 2c; RAM 6GB; TS? Yes 100.105.136.23 - NO active 307 s2
32 vm-prod tsys-siem tsys7 707 CPU 2c; RAM 8GB; TS? No (DNS: 100.72.35.113) - - NO active 307 s2
56 vm-preprod preprod-awx pfv-tsys5 53100 100.77.216.36 - NO active 307 s4
57 vm-preprod preprod-siem pfv-tsys5 53101 100.98.162.14 - NO active 307 s4
58 vm-preprod preprod-rancherplatform pfv-tsys5 53102 100.126.231.121 - NO active 307 s4
59 vm-preprod preprod-proxmoxmailgw preprod-proxmox-mailgw pfv-tsys5 53103 100.114.9.49 - NO active 307 s4
60 vm-preprod preprod-ca pfv-tsys5 53104 100.94.119.5 - NO active 307 s4
61 vm-preprod preprod-proxmox-datacenter pfv-tsys5 53105 100.101.250.10 - NO active 307 s4
62 vm-preprod preprod-librenms pfv-tsys5 53106 100.79.52.34 - NO active 307 s4
73 physical-sbc tailscale-router - **RETIRED 2026-09-02** — subnet-router role replaced by pfv-netinfra-01/02; host removed from tailnet; no DNS records remain dns ~~tailscale-router.knel.net (100.103.48.57)~~ retired 307 s5
74 physical-sbc netbird 100.123.45.23 NetBird VPN dns - active 307 s5
75 physical-sbc pfv-proxmox-backup-server 100.114.81.107 PBS dns pfv-proxmox-backup-server.knel.net active 307 s5
76 physical-sbc siter-bizoffice stlpc-bizoffice 100.96.130.53 WINDOWS (not Linux) dns stlpc-bizoffice.knel.net active 307 s5