Files
dohertj2 8069f21240 Remove Infisical credential pointers; inline credentials in component docs
Reverses the recent Infisical-pointer convention. Each <service>.md
holds its credentials inline under the Access section again. The
Infisical service itself still runs as a Docker stack on the docker
host — it just isn't the source of truth for these docs anymore.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 04:04:34 -04:00

77 lines
4.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Wonderware Dev VM
## Access
- **Hostname**: DESKTOP-6JL3KKO
- **IP**: 10.100.0.48 (VLAN 100 / LAN_100)
- **OS**: Windows 10 Enterprise (10.0.19045)
- **Shell**: PowerShell 7.6.1 (pwsh)
- **Credentials**: `DESKTOP-6JL3KKO\dohertj2` / `Sonamu89` (local Administrator)
- **Remote access**: SSH (passwordless, key in `C:\ProgramData\ssh\administrators_authorized_keys`)
- **Platform**: ESXi VM (vmxnet3 vNIC)
### Running Commands
```bash
ssh dohertj2@10.100.0.48 "hostname"
ssh dohertj2@10.100.0.48 "powershell -Command 'Get-NetAdapter | Format-Table -AutoSize'"
```
Default remote shell is pwsh 7.6.1. SCP/SFTP work normally.
**Historical note (2026-04-28):** the OpenSSH server originally shipped with `DefaultShellCommandOption` registry value set to the literal string `"-NoLogo -Command"` (single broken argument), which made every non-interactive `ssh host <cmd>` and SCP/SFTP fail. Fixed by setting it to `-Command`:
```powershell
New-ItemProperty -Path 'HKLM:\SOFTWARE\OpenSSH' -Name DefaultShellCommandOption -Value '-Command' -PropertyType String -Force
Restart-Service sshd
```
## Network Interface
### Ethernet0 — vmxnet3 (ifIndex 6)
- **MAC**: 00-0C-29-F0-09-6C
- **Speed**: 10 Gbps
- **IP**: 10.100.0.48 (static)
- **MTU**: 1500
- **Gateway**: 10.100.0.1
- **DNS**: 10.100.0.1
Single vNIC, untagged on VLAN 100.
## Display Adapters / GPU
The VM has an NVIDIA Quadro P1000 attached via PCI passthrough — full setup, attach procedure, and rollback are in [ww_gpu.md](ww_gpu.md). Adapter state inside Windows:
| Adapter | Status | Why |
|---|---|---|
| NVIDIA Quadro P1000 (`PCI\VEN_10DE&DEV_1CB1`) | **Active**, 2560×1440 | The intended display; drives DWM and serves NVENC for Parsec |
| VMware SVGA 3D (`PCI\VEN_15AD&DEV_0405`) | **Disabled** (PnP-disabled 2026-04-29) | Removing the second adapter is what got Parsec/DXGI to bind to the Quadro instead of falling back to MS Basic Render Driver. Re-enable with `Enable-PnpDevice -InstanceId "PCI\VEN_15AD&DEV_0405&SUBSYS_040515AD&REV_00\3&61AAA01&0&78" -Confirm:$false` |
| Parsec Virtual Display Adapter (`ROOT\DISPLAY\0000`) | Installed, offline (Availability=8) | Parsec ships this and `host_virtual_monitors=1` is set in `C:\ProgramData\Parsec\config.json`, but it stays offline because the Quadro is already serving as the active display. Harmless; leave installed |
### Side effects
- **vSphere VM Console window shows nothing** — the Quadro doesn't render to ESXi's virtual framebuffer, and VMware SVGA (which did) is disabled. Use SSH / Parsec / RDP instead. If you need vSphere console access (e.g., to recover a black-screen Parsec failure), re-enable VMware SVGA via SSH first.
- **NVENC session count is 1 max** for typical workloads on the Quadro P1000. Parsec already holds the slot; OBS or another encoder using NVENC simultaneously won't get a session.
### Remote desktop options
| Path | Encoder | Notes |
|---|---|---|
| **Parsec** | NVENC (Quadro hardware H.264) | The intended remote-desktop path. Verified `encoder = nvidia / codec = h264` in `C:\ProgramData\Parsec\log.txt` |
| RDP | Software (CPU AVC444) | Works. Windows 10 client OS doesn't honor `AVCHardwareEncodePreferred` server-side, so NVENC stays idle for RDP regardless of policy. The four RDP GPU policies that had been set under `HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services` (`bEnumerateHWBeforeSW`, `AVC444ModePreferred`, `AVCHWEncodePreferred`, `AVCHardwareEncodePreferred`) were **reset to defaults (deleted) on 2026-05-11** since only `bEnumerateHWBeforeSW` had any effect on this OS and the rest were no-ops. Other RDP graphics policies under the same key (`fEnableVirtualizedGraphics`, `MaxCompressionLevel`, `GraphicsProfile`, `VGOptimization_*`, etc.) were left in place — they predate the GPU work |
| SSH | n/a | Always works; preferred for automation |
## Docker / WSL2 (removed)
As of 2026-04-28 this VM no longer runs Docker workloads. Docker Desktop, the `docker-desktop` WSL2 distro, and the VirtualMachinePlatform/WSL Windows features have been removed so a GPU can be re-attached via ESXi passthrough (Hyper-V/WSL2 was blocking it). A reboot is required to finalize the feature disable.
The `lmxopcua` project's Docker workloads now live on the docker host (10.100.0.35); see [docker.md](docker.md). The developer drives them from this VM via `~/bin/lmxopcua-fix.ps1`, which SSHes into the docker host. A standalone Docker CLI (no daemon) is at `~/bin/docker.exe` for ad-hoc remote operations against the docker host.
## lmxopcua Project
- **Path**: `C:\Users\dohertj2\Desktop\lmxopcua`
- **Local services**: GLAuth (NSSM service, `C:\publish\glauth\`, port 3893), Galaxy / MXAccess, the OtOpcUa server itself (`opc.tcp://localhost:4840`)
- **Remote services**: SQL Server config DB at `10.100.0.35,14330` and all driver test fixtures via `lmxopcua-fix.ps1`
- **Helper**: `~/bin/lmxopcua-fix.ps1``up`/`down`/`logs`/`ls`/`sync` against `/opt/otopcua-<driver>/` on the docker host
- **Identifying label** on remote containers: `project=lmxopcua`