Files
claudetools/.claude/memory/reference_pluto_build_server.md
Mike Swanson 0665e3a007 wiki/memory: retire GuruRMM 'VM' framing + correct Windows build chain
Two sweeps:
1. .30 is a PHYSICAL box (Lenovo ThinkCentre M83, Ubuntu 26.04), not a Jupiter
   VM — the VM was decommissioned 2026-06-12. Fixed inventory tables and the
   gururmm-build system page (overview, index, jupiter, gururmm-build,
   POWER_FAILURE_RUNBOOK).
2. Windows build chain: Beast (GURU-BEAST-ROG, tailnet 100.101.122.4, i9-14900K)
   is PRIMARY; Pluto (172.16.3.36) is FALLBACK. Verified against build-windows.sh
   (`attempt_build beast || attempt_build pluto`). Fixed overview, index,
   projects/gururmm (build-host table + flow + host detail), systems/pluto, and
   the reference_pluto_build_server memory.

Submodule advanced: build-pipeline doc comments corrected to match.
2026-06-12 07:46:15 -07:00

3.9 KiB

name, description, type
name description type
Pluto Build Server General-purpose Windows build VM — hostname PLUTO / Unraid VM "Claude-Builder" / 172.16.3.36. For any EXE needing native Windows MSVC compilation (utilities, Howard's tools, GuruRMM + GuruConnect agents). Drive via /rmm (agent enrolls as PLUTO) when SSH key isn't authorized. reference

Pluto is a Windows Server 2019 VM on Jupiter (Unraid). The general-purpose Windows build machine for any project needing a native Windows executable — not just GuruRMM.

Identity

  • Hostname: PLUTO
  • Unraid VM name: Claude-Builder — same machine as PLUTO / 172.16.3.36. There is no dedicated pluto vault entry — credentials for Administrator are in SOPS (search the vault for "pluto" if needed).
  • Static IP: 172.16.3.36 (confirmed static 2026-04-19)

Access

  • SSH (preferred): ssh -i ~/.ssh/id_ed25519 Administrator@172.16.3.36 — key auth only.
  • Authorized keys (verified via RMM 2026-05-26): gururmm-build@gururmm-server and guru@gururmm-build (the build server's keys), in both C:\ProgramData\ssh\administrators_authorized_keys and Administrator\.ssh\authorized_keys. The retired guru@DESKTOP-0O8A1RL key has been rotated out. NO personal-workstation key (e.g. GURU-5070) is currently authorized — add the workstation's pubkey to administrators_authorized_keys if you need direct SSH.
  • Fallback when SSH key isn't authorized: PLUTO runs a GuruRMM agent (client "AZ Computer Guru"). Use /rmm — resolve hostname PLUTO → agent id at runtime (IDs change on re-enroll; do not hardcode) — to run PowerShell on it.
  • When SSH fails: check Jupiter's VM console first (the VM, not the physical host).

administrators_authorized_keys gotcha

The file must be ASCII-encoded with icacls /inheritance:r set. PowerShell > writes UTF-16 BOM and silently breaks SSH key auth. Write keys with:

[System.IO.File]::WriteAllText('C:\ProgramData\ssh\administrators_authorized_keys', $keyContent, [System.Text.Encoding]::ASCII)

Installed Toolchain

  • Rust: stable-x86_64-pc-windows-msvc (rustup at C:\Users\Administrator\.cargo\bin)
  • VS Build Tools: Microsoft.VisualStudio.Workload.VCTools (MSVC linker, CRT, Windows SDK)
  • WiX 4: for MSI builds
  • Code signing: Azure Trusted Signing (via signtool)
  • Git: v2.47.1.windows.2
  • OpenSSH: Win32-OpenSSH, sshd set to Automatic startup

Use Cases

Native Windows MSVC builds — produces .exe with no MinGW runtime dependency. Examples:

  • Internal utilities and one-off compiled scripts
  • Howard's tech tools (MasterBooter, Slint GUI apps)
  • GuruRMM Windows agent variants (amd64, x86, legacy, debug) and MSI packaging
  • Anything using Windows-only APIs or needing signtool signing

Note: Routine GuruRMM Windows agent builds run via build-windows.sh (MSVC + WiX + jsign) with Beast (GURU-BEAST-ROG, tailnet 100.101.122.4) PRIMARY and Pluto the FALLBACKattempt_build beast || attempt_build pluto. Pluto is no longer the primary GuruRMM build host; it's the fallback path, plus GuruConnect's Gitea-runner builds, MSVC-specific builds, and one-off tooling. See gururmm-beast-windows-build-host.

Directory Layout

  • C:\builds\ — general project builds (subdirectory per project)
  • C:\gururmm\ — GuruRMM repo clone

Typical Workflow

ssh -i ~/.ssh/id_ed25519 Administrator@172.16.3.36
git clone https://azcomputerguru:<token>@git.azcomputerguru.com/azcomputerguru/<repo>.git C:\builds\<project>
cd C:\builds\<project>
cargo build --release
# From workstation:
scp -i ~/.ssh/id_ed25519 Administrator@172.16.3.36:"C:/builds/<project>/target/release/<name>.exe" ./

GuruRMM agent on PLUTO

Historically runs old versions (0.6.3 as of 2026-05-15). Update it after any Pluto maintenance.

Not Neptune

Neptune is a separate server (email/web hosting). Pluto is for builds only.