Skip to main content
MacStadium has already provisioned your Mac hosts, configured networking, and installed macOS. This guide covers everything on your side: connecting to your infrastructure, setting up the orchestration controller, and deploying your first macOS VMs.
If you haven’t received your VPN credentials, Orka Engine license key, and installer URL from your MacStadium account representative, request those before starting.

Prerequisites

Before you begin, confirm you have the following:
  • A controller machine (macOS or Linux) with internet access
    • Minimum: 2 vCPU, 4 GB RAM, 20 GB storage
    • Recommended: 4 vCPU, 8 GB RAM, 50 GB storage
  • VPN credentials from MacStadium
  • IP addresses for your Mac hosts (provided by MacStadium)
  • Orka Engine license key and installer URL (from your MacStadium account representative)
  • An administrator account on your controller machine
Don’t enable FileVault on Mac hosts without coordinating with MacStadium first. If a host with FileVault enabled powers down, a MacStadium data center technician must intervene on-site before the host can be accessed remotely. If your security policy requires FileVault, use macOS Tahoe on your hosts. Tahoe supports pre-boot SSH for remote disk decryption, which avoids the need for on-site intervention. FileVault is not officially supported by MacStadium. See Security and Encryption for details.

Step 1: Connect to your MacStadium network

All Mac hosts are on MacStadium’s private network. You’ll need an active VPN connection before the controller can reach them. Connect using the VPN credentials provided by MacStadium. If you haven’t configured your VPN client yet, see VPN Connection. Once connected, verify you can reach your hosts:
Repeat for each host IP in your fleet. All hosts must be reachable before you continue.

Step 2: Set up your controller

Run all steps in this section on your controller machine.

2.1 Set the hostname

Set a consistent hostname before configuring anything else. Replace example-controller with your chosen name.

2.2 Install Homebrew

2.3 Install Ansible

Modern versions of macOS prevent installing Python packages system-wide. Install Ansible through pipx to keep it isolated from the system Python environment.

Step 3: Configure SSH access to your hosts

Ansible uses SSH key authentication to connect to each Mac host.

3.1 Generate an SSH key

If you don’t already have one:
Accept the default file path or specify your own.

3.2 Copy the key to each host

Run once per host, substituting the correct IP address:
Verify the connection before continuing:
Repeat for each host in your fleet.

Step 4: Configure the orchestration library

Run all steps in this section on your controller.

4.1 Clone the repository

4.2 Create the inventory file

The inventory file tells Ansible which hosts to manage. Add the IP address of each Mac host:
Inventory file contents:

4.3 Configure group variables

Group variables apply settings across all hosts. Open the file created in the previous step:
File contents:

Step 5: Install Orka Engine

This playbook installs Orka Engine on every host in your inventory. It applies your license key and starts the service automatically.
Replace YOUR-LICENSE-KEY and YOUR-INSTALLER-URL with the values from your MacStadium account representative.

Verify the installation


Step 6: Set up the management UI

The management UI (built on Semaphore) is the primary interface for IT administrators. It provides a browser-based dashboard for running orchestration playbooks without touching the CLI.

6.1 Install prerequisites

Docker and uv are required to run the management UI.
Docker Desktop is an alternative if you prefer a GUI installer.

6.2 Configure the environment

Generate a 32-byte encryption key:
Open semaphore/.env and set the following values:
Also set your admin username and password in the same file before starting.

6.3 Start the management UI

The management UI is available at http://localhost:3000. Log in with the admin credentials you set in the .env file.

6.4 Configure SSH credentials

Option A: Setup script (recommended)
Run uv run ./semaphore/configure_semaphore.py --help to see all available options, including VM credentials and OCI registry settings. Option B: Manual (UI) After logging in, navigate to Key Store and edit the Mac Hosts SSH key. Replace the placeholder with the actual SSH username and private key for your Mac hosts.

Step 7: Deploy your first VM

With your hosts configured and the management UI running, you’re ready to deploy a macOS VM. From the management UI, open the Orka Engine Orchestration project and run the VM: Deploy VM template. Enter a unique vm_name and the vm_image to use. Or run the playbook directly from the controller:
Use network_interface=en0 (bridged networking) for VDI workloads. This gives VMs direct IP addresses on your network, which Citrix Cloud and end users need to reach them without port forwarding.
Verify the VM deployed:
To preview a deployment without making changes, add --tags plan:

Next steps

Your infrastructure is ready. Continue with:

Citrix DaaS Configuration

Register your VMs with Citrix Cloud and configure delivery groups.

Image Management

Build a golden image with Citrix VDA and your organization’s applications pre-installed.