Hopp Solutions

Cloud and infrastructure engineering for business-critical environments.

Case StudiesInsightsAboutContact
ENDE
Book an Infrastructure Review

Case study | Infrastructure automation

Standardizing Citrix worker deployment with Terraform and PowerShell

On a platform without hypervisor-level machine creation, every Citrix worker was being assembled by hand. A repeatable provisioning workflow was developed around the hosting-provider API, a maintained virtual machine template, a strict naming model and automated post-deployment initialization.

Client context

A Citrix environment on a platform where traditional worker provisioning was not available.

Once the environment ran on a Swiss cloud platform, the machine-creation services that normally produce Citrix workers from a master image could no longer be used. Workers still had to be added, replaced and retired, but each one was being built manually, which made the result depend on who built it and when.
iamgeshadow

The challenge

  • Provision Citrix workers repeatably on a platform without hypervisor-level machine creation.
  • Remove the manual steps that made each worker slightly different from the last.
  • Drive virtual machine creation through the hosting provider's API rather than its portal.
  • Apply a naming, sizing and placement model that still holds as the environment grows.
  • Automate the post-deployment work: domain join, VDA configuration and catalog membership.
  • Make worker replacement and decommissioning as routine as worker creation.
  • Leave a workflow the internal team can run, read and extend.

Constraints

The conditions the workflow had to work within.

icon

API-only provisioning

The platform exposed no hypervisor integration, so the entire virtual machine lifecycle had to be driven through the provider's API.

icon

Template maintenance

Workers are only as consistent as the image behind them, so template upkeep had to be part of the workflow rather than a separate manual habit.

icon

Knowledge concentration

Manual builds kept the environment dependent on the individuals who happened to know the steps.

icon

A live environment

Automation had to be introduced alongside a Citrix environment that was already serving users every working day.

Hopp Solutions approach

01

Capture the manual build

Record every step performed by hand, from sizing, disks and network attachment through domain join, VDA configuration and catalog membership, as the specification the automation had to reproduce.

02

Template as the baseline

Establish a maintained virtual machine template so that image-level changes happen once, in a known place, instead of per machine.

03

Provisioning with Terraform

Describe workers as code against the hosting-provider API, with deterministic sizing, placement, disks, network attachment and names derived from the catalog they belong to.

04

Initialization with PowerShell

Automate what happens after first boot: domain join, local configuration, VDA registration against the delivery controller and membership in the correct machine catalog and delivery group.

05

Naming and numbering model

Apply one convention across catalogs so a worker's name identifies its purpose, catalog and sequence without a lookup.

06

Lifecycle, not only creation

Cover replacement and decommissioning in the same workflow, so retiring a worker removes it from Citrix and from the platform rather than leaving records behind.

07

Validation and handover

Deploy workers through the workflow, confirm registration and session launch, then document how the team runs, reviews and extends it.

Outcome

Worker deployment became a repeatable workflow instead of a manual build.

New Citrix workers are produced from a maintained template through code, initialized and registered automatically, and named by a convention that holds across catalogs. The steps that used to live with individual engineers are now readable, reviewable and repeatable by the team.
iamgeshadow

Outcome by area

Outcome areaResult
ProvisioningWorkers created from code against the provider API
ConsistencySizing, naming and placement derived from one model
InitializationDomain join, VDA registration and catalog membership automated
LifecycleReplacement and decommissioning covered by the same workflow
OperationsWorkflow documented and runnable by the internal team

What made the project work

  • iconDocumenting the manual build first, so the automation had a specification to meet.
  • iconKeeping the template and the code as two clearly separated responsibilities.
  • iconDeriving names and sizes from a model instead of deciding them per deployment.
  • iconAutomating decommissioning alongside creation, so the environment stays clean over time.
  • iconBuilding a workflow the client's own engineers can read and change.
iamgeshadow

Technology areas

  • Citrix Virtual Apps and Desktops
  • Citrix VDA
  • Machine catalogs and delivery groups
  • Terraform
  • PowerShell
  • Hosting-provider API
  • Windows Server
  • Active Directory
  • Swiss cloud infrastructure

We can capture the current build, turn it into a provisioning workflow your team can run, and cover replacement and decommissioning in the same place.

Hopp Solutions

Cloud and infrastructure engineering for business-critical environments.

Based in Ohrid, North Macedonia. Supporting organizations and technology teams across Europe.

Copyright 2026 Hopp Solutions Dooel. All rights reserved.