Three layers: Aria control plane, cloudbase-init first boot, file-share build engine

Windows Server 2025 via Aria Automation, part 1: the pipeline

One catalog request, one fully built, domain-joined Windows Server 2025 with its agents, a validation report, and no trace of the tooling that built it. The three-layer design, and why each seam is where it is.

17 September 2026 · Updated 1 October 2026 · 11 min · Adam Stretton
The lab factory: stage 1 nested hosts, stage 2 bringup, day-N items, one wrapper form

One catalog item, one VCF instance: building a lab factory

How an interactive PowerShell script grew into a catalog item that builds complete nested VCF 9.1 instances from one request form. The design rules that made it survivable, and the traps behind them.

16 September 2026 · Updated 1 October 2026 · 7 min · Adam Stretton
One checkbox on every form: validateOnly. Tick everything, plan the whole stack, change nothing.

validateOnly everywhere: plan mode for infrastructure

Terraform has plan. Kubernetes has –dry-run. Your vRO workflows have nothing, unless you give them a validateOnly input and pass it down. The most valuable checkbox in the lab factory.

16 September 2026 · Updated 1 October 2026 · 4 min · Adam Stretton
Left: an interactive script's menu prompts. Right: where each one went — inputs, actions, template expressions, subscriptions.

Porting a PowerShell deploy script to a catalog item: the mapping table is the post

A 400-line menu-driven PowerShell script became a cloud template, two vRO actions and two subscriptions. Where each behaviour belongs, four non-obvious decisions, and the ‘yes’ that isn’t ’true’.

16 September 2026 · Updated 1 October 2026 · 6 min · Adam Stretton
Spec derived from X, validated by the installer, bringup started, task id returned; a second run polls without the catalog's leash

Driving the VCF Installer API from vRO: generate, validate, start, walk away

Stage 2 of the lab factory: a vRO workflow turns an environment number into a VCF 9.1 deployment spec, validates it and starts bringup, because the request dies long before the eight-hour build does.

16 September 2026 · Updated 1 October 2026 · 7 min · Adam Stretton