Before you start, confirm you have your Orka Engine license key and installer URL from your MacStadium account representative.
Prerequisites
Hardware requirements
Each Mac host must meet the following minimum specifications:- Apple silicon processor (any M-series chip)
- 8 GB RAM
- 256 GB storage
- 1 GB Ethernet
- macOS 13 (Ventura) or later
- M2 Pro, M4 Pro, or higher
- 32 GB RAM
- 1 TB+ storage
- 10 GB Ethernet
- macOS 14 (Sonoma), 15 (Sequoia), or 26 (Tahoe)
Apple’s EULA limits macOS virtual machines to 2 per host, regardless of available resources.
Controller requirements
The Ansible controller is a separate machine (macOS or Linux) that runs orchestration playbooks and the management UI.- Minimum: 2 vCPU, 4 GB RAM, 20 GB storage
- Recommended: 4 vCPU, 8 GB RAM, 50 GB storage
Network requirements
- On-Premises
- AWS
- Management VLAN with connectivity between the controller and all Mac hosts
- Static IPs or DHCP reservations for each host
- Outbound TCP 443 from VMs to Citrix Cloud endpoints (if deploying with Citrix DaaS):
[customer_ID].xendesktop.net*.*.nssvc.net*.citrixworkspacesapi.net
- Inbound TCP/UDP 1494 and 2598 to VMs for HDX sessions
Step 1: Prepare your Mac hosts
Run all steps in this section on each physical Mac host. Repeat for every host in your fleet.1.1 Assign a static IP
Assign a static IP to each host before installing Orka Engine. Either configure it manually or use a DHCP reservation. Manual configuration:- Open System Settings → Network → select your interface (Ethernet or Wi-Fi).
- Set IP address, subnet mask, router, and DNS servers from your management VLAN.
- Apply and verify connectivity.
- Note the MAC address of each host from System Settings → Network → Details → Hardware.
- Configure your DHCP server to assign a fixed IP to each MAC address.
- Verify the host receives the reserved IP.
| Field | Example |
|---|---|
| Hostname | mac-node-1 |
| IP address | 10.0.100.10 |
| MAC address | a1:b2:c3:d4:e5:f6 |
| Hardware model | Mac mini M4 |
| Network interface | en0 |
1.2 Set the hostname
Replaceexample-host0 with the appropriate hostname for each machine. Use a short name without dots for HostName.
1.3 Install Homebrew
1.4 Verify Python
Python 3 is required for Ansible to manage the host. It ships with macOS but confirm it’s present:Step 2: Set up your controller
Run all steps in this section on the controller machine.2.1 Set the hostname
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. Run these steps on the controller.3.1 Generate an SSH key
If you don’t already have one:3.2 Copy the key to each host
Run once per host, substituting the correct IP:Step 4: Configure the orchestration library
Run all steps in this section on the controller.4.1 Clone the repository
4.2 Create the inventory file
4.3 Configure group variables
| Variable | Description |
|---|---|
max_vms_per_host | Maximum VMs per host. Apple’s EULA caps macOS VMs at 2 per host. |
engine_binary | Path to the Orka Engine binary |
ansible_user | SSH username on each host |
vm_image | Default base image for VM deployments |
network_interface | (Optional) Network interface for bridged networking, e.g. en0 |
Step 5: Install Orka Engine
This playbook installs Orka Engine on every host in your inventory, applies your license key, and starts the service.YOUR-LICENSE-KEY and YOUR-INSTALLER-URL with the values from your MacStadium account representative.
Verify the installation
Force reinstall or upgrade
To reinstall or upgrade to a newer version, add theinstall_engine_force flag:
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 Desktop is an alternative if you prefer a GUI installer.
6.2 Configure the environment
semaphore/.env and paste the key:
6.3 Start the management UI
http://localhost:3000. Log in with the admin credentials you set in .env.
6.4 Configure SSH credentials
Option A: Setup script (recommended)uv run ./semaphore/configure_semaphore.py --help to see all 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 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 uniquevm_name and the vm_image to use.
Or run the playbook directly:
Use
network_interface=en0 (bridged networking) for VDI workloads. VMs get direct IP addresses on your network, which Citrix Cloud and end users need to reach them without port forwarding. Orka 3.5.0 or later is required for bridged networking.- On-Premises
- AWS
Use your management VLAN interface, typically
en0 for Ethernet. Confirm the interface name on each host with networksetup -listallhardwareports.--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.

