docs(inventory): full QA §7.1 refresh for the 2026-08-14 VQ04 singleton clone — 10-instance fleet, psbridge :6150 + glauth :3893 port rows, VQ04→VQ03 Galaxy/alarm dependency; CLAUDE.md Overview note updated
This commit is contained in:
@@ -337,8 +337,10 @@ service `ZbOverview` on **:5320** under the shared NSSM, `ASPNETCORE_ENVIRONMENT
|
||||
**site** card claim `Leader · central`, a different Akka cluster. Fixed by using `127.0.0.1`,
|
||||
which matches nothing, so each chip falls back to the raw Akka address.
|
||||
|
||||
**A second instance runs on the QA box `wonder-app-vq03:5320`** (observed live 2026-08-13, watching
|
||||
**8 instances across 4 applications**, all Up — it is the fastest way to read QA's whole topology).
|
||||
**QA runs an instance on EACH pair node — `wonder-app-vq03:5320` and (since 2026-08-14)
|
||||
`wonder-app-vq04:5320`** — both watching the same registry, now **10 instances across 4
|
||||
applications** after the 2026-08-14 VQ04 singleton clone (MxGateway + HistorianGateway added on
|
||||
vq04; see `deployment.md` §7.1). It is the fastest way to read QA's whole topology.
|
||||
Its registry uses **real FQDNs**, and that is correct rather than a divergence: the `127.0.0.1`
|
||||
rule above exists only because VD03 co-locates every instance on one host. QA is a **2-node pair**
|
||||
(`vq03`/`vq04`) with genuinely distinct hosts, so leader resolution works as designed and the chips
|
||||
|
||||
+25
-7
@@ -356,14 +356,18 @@ DEV gRPC on `wonder-app-vd03:5120`, QA on `wonder-app-vq03:5120`. SSH: windev/fi
|
||||
|
||||
### 7.1 QA port map: VQ03 and VQ04
|
||||
|
||||
Established **2026-08-13** from two independent live sources, neither of them a config file — treat
|
||||
connection strings and service names as unverified. Rows are marked with how each was established:
|
||||
Established **2026-08-13** from two independent live sources, neither of them a config file, and
|
||||
**updated 2026-08-14** when the three singleton services were cloned onto VQ04 (that update IS from
|
||||
the boxes' live NSSM config + health probes, so its rows are verified). Rows are marked with how
|
||||
each was established:
|
||||
|
||||
- **`scan`** — TCP port scan of both hosts, plus a `/health/ready` GET where one was served.
|
||||
- **`dash`** — read off the **QA Overview dashboard** (`vq03:5320`), which was already polling the
|
||||
QA fleet and reports each instance's endpoint, health entries and active/standby state. Stronger
|
||||
evidence than a scan for these rows: the dashboard is successfully talking to the service, not
|
||||
merely finding an open socket. These ports were never scanned by me.
|
||||
- **`svc` / `live`** — added 2026-08-14: read from the boxes' own service registry (NSSM
|
||||
`AppEnvironmentExtra` / `Win32_Service`) or exercised end-to-end during the VQ04 singleton setup.
|
||||
|
||||
| Port | VQ03 | VQ04 | How | Service |
|
||||
|---|---|---|---|---|
|
||||
@@ -377,18 +381,32 @@ connection strings and service names as unverified. Rows are marked with how eac
|
||||
| 5120 / 5130 | ✅ | ✅ | scan | **MxAccessGateway** gRPC / dashboard (VQ04 added 2026-08-14, cloned from VQ03) |
|
||||
| 5220 / 5221 | ✅ | ✅ | scan | **HistorianGateway** dashboard / gRPC h2c (VQ04 added 2026-08-14) |
|
||||
| 5320 | ✅ | ✅ | scan | **Overview** dashboard (one per node since 2026-08-14; both watch the same 10-instance registry) |
|
||||
| 1433 | ✅ | ✗ | scan | SQL Server |
|
||||
| 2222 | ⚠️ | ⚠️ | scan | servecli SSH — **TCP-open but NOT serving SSH** (see below) |
|
||||
| 1433 | ✅ | ✗ | scan | SQL Server (**ZB Galaxy repo DB — VQ03 only**; VQ04's gateways point their Galaxy connection strings here) |
|
||||
| 3893 | ✅ | ✅ | svc | glauth LDAP (`ScadaBridge-LDAP` service, loopback-only, `dc=scadabridge,dc=local` — one per box, configs identical) |
|
||||
| **6150** | ✅ | ✅ | live | **psbridge** remote-admin bridge (`server.exe`, root jail `E:\psrem`) — **the supported access path**; see §2.1 |
|
||||
| 2222 | ⚠️ | ⚠️ | scan | servecli SSH — **retired; TCP-open but NOT serving SSH** (see below) |
|
||||
|
||||
**Live state at capture** (`8 instances across 4 applications`, all Up):
|
||||
**Live state at the 2026-08-13 capture** (`8 instances across 4 applications`, all Up; since
|
||||
2026-08-14 the registry is **10 instances** — MxAccessGateway and HistorianGateway run on both
|
||||
nodes, verified Healthy at setup):
|
||||
|
||||
| Application | VQ03 | VQ04 |
|
||||
|---|---|---|
|
||||
| OtOpcUa (cluster `MAIN`) | node-a — **Standby** (`active 503`) | node-b — **Active** (`active 200`) |
|
||||
| ScadaBridge `central` | central-a — **Active** | central-b — Standby |
|
||||
| ScadaBridge `site` | site-a — **Active** | site-b — Standby |
|
||||
| MxAccessGateway | Active | — |
|
||||
| HistorianGateway | Up | — |
|
||||
| MxAccessGateway | Active | Active (since 2026-08-14; independent gateways, no cluster) |
|
||||
| HistorianGateway | Up | Up (since 2026-08-14) |
|
||||
| Overview | Up (`:5320`) | Up (`:5320`, since 2026-08-14; same 10-instance registry) |
|
||||
|
||||
**The 2026-08-14 VQ04 clone, in one paragraph:** MxAccessGw + HistorianGateway + ZbOverview were
|
||||
copied from VQ03 (same `E:\ApiInstall\...` layout, NSSM `AppEnvironmentExtra` config, LocalSystem)
|
||||
**including the API-key stores and peppers, so the same `mxgw_…`/`histgw_…` tokens verify on both
|
||||
boxes** — proven with positive + negative controls. The only config deltas: both apps' Galaxy SQL
|
||||
connection strings point at VQ03 (`Server=wonder-app-vq03…;Database=ZB` — VQ04 has no local SQL
|
||||
Server) and mxgw's alarm subscription stays `\\wonder-app-vq03\Galaxy!NAM`. **So VQ04's gateways
|
||||
depend on VQ03 for Galaxy browse + alarms**; Historian/Runtime-DB traffic goes to `wonder-sql-vq03`
|
||||
independently. Deploy record: `E:\ApiInstall\_DEPLOY-NOTES-20260814-singletons-added.txt` on VQ04.
|
||||
|
||||
Three things worth carrying forward:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user