Proxmox & Parallels RAS image automation
I’ve had the opportunity to work with Citrix Provisioning Services (PVS) in the past—mainly in an environment I inherited rather than built from scratch—but it did leave a strong impression. The idea of managing a single master image and streaming it to multiple machines is a clean and efficient approach to provisioning. It keeps environments consistent, simplifies updates, and avoids the usual image sprawl.
This article is not a step-by-step tutorial, and I’m not a programmer. I’m a system engineer who focuses on building practical, reliable solutions. After recently migrating away from Citrix to Parallels RAS—primarily driven by licensing costs—I quickly noticed that this provisioning model wasn’t something I could replicate out of the box in our setup.
In our current environment, we’re running Parallels RAS on top of Proxmox. While Parallels RAS does support image-based provisioning workflows on certain platforms, that functionality isn’t (yet) available for Proxmox. As a result, the familiar “single master image” approach wasn’t something I could directly use.
Instead of just living with that limitation or waiting until support might eventually be added, I started looking for ways to recreate a similar approach myself. The goal was straightforward: keep a single master image, automate deployments, and maintain consistency across the environment.
This annoyed me enough to fix it.
What followed was a mix of automation, API integrations, and orchestration. With the help of my good friend Claude and the flexibility of n8n, I ended up building a solution that captures a lot of the benefits of the PVS model within a Proxmox + Parallels RAS setup.
In this article, I’ll walk through the architecture, key design choices, and some of the challenges I ran into along the way. Not as a full guide, but as a technical look at how I approached rebuilding a familiar provisioning concept in a stack that doesn’t natively support it.
Environment & Requirements
In our current setup, I’m running a Proxmox cluster where session hosts need to be distributed across multiple nodes for availability and load balancing. The goal is not just to deploy machines, but to do so in a consistent and repeatable way across the entire cluster.
At the core of the environment, I maintain a master image—Windows Server 2025 Datacenter—with all required software, configurations, and optimizations already in place. This image represents the baseline for every session host that gets deployed.
To streamline deployment, I use a minimal unattend.xml file. Its purpose is simply to skip the OOBE (Out-Of-Box Experience) steps, allowing the system to boot directly into a usable state without manual interaction. All actual configuration and software is already baked into the master image itself.
This means the master image truly acts as the single source of truth for the entire environment.
However, maintaining that image over time is just as important as deploying it. Updates, configuration changes, and software adjustments need to be applied regularly. With Citrix PVS, this process was extremely streamlined: create a maintenance version of the image, boot it, apply changes, shut it down, and promote it to production. The next reboot cycle would automatically roll out the updated image to all users.
That simplicity sets a high bar—and it’s exactly what I wanted to replicate in this environment.