Environment Preparation
Orka-Engine-Orchestration is the control plane for managing virtual desktops. It runs in a dedicated VM and connects to physical Mac hosts with Orka Engine deployed. Orka Engine provides the virtualization layer that enables macOS VMs to run on physical Macs.Network Configuration (VLANs, Bridged Networking)
Pre-installation network configuration setup:
Before installing Orka Engine, configure the network settings on each Mac host as follows: Static IP assignment (recommended):- Open System Settings → Network → Select interface (Ethernet or Wi-Fi)
- Configure manually:
- Apply settings and verify connectivity
- Note the Mac’s MAC address (System Settings → Network → Details → Hardware)
- Configure DHCP server to always assign the same IP to this MAC address
- Verify the Mac receives the reserved IP address
Document information for each host:
- Hostname (e.g., mac-node-1, mac-node-2)
- IP address (e.g., 10.0.100.10, 10.0.100.11)
- MAC address
- Hardware model (e.g., Mac mini M4, Mac Studio M2 Ultra)
- Network interface used (en0, en1, etc.)
Network Configuration for Orka VMs
Bridged vs. NAT Networking
Orka Engine supports two networking modes for VMs: NAT Mode (Default)- VMs receive internal IP addresses not directly accessible from the network
- Requires port forwarding to access VMs from outside the host
- Suitable for CI/CD workloads where direct network access isn’t required
- VMs receive IP addresses on the same subnet as the physical Mac hosts
- Direct Layer 2 connectivity simplifies network configuration
- No NAT complications for inbound Citrix HDX connections
- VMs are directly reachable by Citrix Cloud and end users
network_interface variable (typically en0 for Ethernet) when running playbooks:
network_interface is not specified, VMs deploy in NAT mode.
Network Requirements
Ensure your network meets these requirements for bridged VDI deployments:
- DHCP: Sufficient IP address scope to assign addresses to VMs, or configure static reservations
- DNS: VMs must resolve Citrix Cloud domains (see Firewall Configuration below)
- Routing: VMs on the bridged network must have outbound internet access for Citrix registration
[customer_ID].xendesktop.net- Citrix DaaS controller*.*.nssvc.net- Citrix Gateway Service*.citrixworkspacesapi.net- Gateway connectivity checks- On-premises delivery controller FQDNs (for CVAD deployments)
- TCP ports 1494 and 2598 - HDX sessions
- UDP ports 1494 and 2598 - HDX sessions
- TCP/UDP port 443 to
*.*.nssvc.net
Install Orka-Engine-Orchestration in a VM and Orka Engine on Mac Hardware
Getting Started
- Obtain Orka Engine installer and License:
orka-engine license set --key YOUR_KEY
- Set up the orka-engine-orchestration repository on your control machine:
- Minimum: 2 vCPU cores, 4GB RAM, 20GB available storage
- Recommended: 4 vCPU cores, 8GB RAM, 50GB available storage
Set up SSH key-based authentication to Mac nodes:
Deploy SSH keys
Copy public key to each Orka host
Register and Configure Mac Hosts with Ansible Inventory Management
Ansible inventory management enables centralized orchestration of Orka hosts and VMs. Proper inventory structure simplifies deployment, updates, and lifecycle management. Organize your Ansible inventory file (inventory.ini) to reflect your infrastructure: Host groups:[hosts]- Physical Mac machines running Orka Engine
ansible_user- SSH username (typically admin)vm_image- Default VM image for deploymentsmax_vms_per_host- Maximum VMs allowed per host (optional)engine_binary- Path to the Orka engine binary (default: defined in your inventory or group vars)
Network Accessibility
Confirm each host is reachable at its assigned IP address:
Install Orka Engine
Perform the following installation after updating theinventory files with info for each physical Mac
-
Downloads the Orka Engine package from the URL provided via the
[engine_url]variable. - Installs the Orka Engine package on each Mac host with administrative privileges
- Applies license key configuration
- Starts Orka Engine service
- Note: This installs Orka Engine on EACH physical Mac host defined in your inventory file. The installation is automated and runs in parallel across your Mac fleet.
Force Redeployment or Upgrade
To force reinstallation or upgrade to a newer version:Post-Installation Configuration and Verification
After installation completes: Orka Engine Service:-
Service starts automatically via
launchd -
Service status: Verify with
orka-engine info
Verification
Verify Orka Engine is properly installed and running using the following commandsNetwork Validation
Before deploying Orka for VDI at scale, you may wish to validate your network configuration by reviewing the following:- Connectivity tests: Verify VMs can reach all required Citrix endpoints
- Port tests: Confirm TCP 443 outbound and HDX ports inbound
- DNS resolution: Test name resolution for Citrix domains
- Latency measurement: Establish baseline network performance
- Bandwidth testing: Verify sufficient throughput for HDX sessions
deploy.yml and delete.yml playbooks support —tags plan to preview what will be deployed or deleted without making any changes. Document your network architecture in your Git repository, including VLAN diagrams, IP allocation tables, and firewall rules.
Create a Git repository
Start by forking the orka-engine-orchestration repository on GitHub. This gives you a versioned starting point with all required playbooks, roles, and inventory structure already in place. You can customize it for your environment and track your changes over time. When setting up a Git repository, it is important to consider the following best practices:-
Create a
.gitignorefile to exclude sensitive data from Git (SSH keys, vault files, or other secure credentials) - Commit your Ansible playbook structure, golden templates, and role definitions
- Never commit passwords, tokens, or private keys
- Tag releases for production deployments
- Maintain separate branches for staging, deployment, and production
- Document your playbook’s purpose and its directory structure in your project’s README
Create an OCI registry
You will need an OCI-compliant container registry to store and distribute MacOS VM images. MacStadium provides public base images through GitHub Container Registry atghcr.io/macstadium/orka-images. This includes:
- macOS Tahoe, Sequoia, Ventura, and Sonoma base images
- Regular updates aligned with macOS releases
- Full control over image versions and distribution
- Faster image pulls within your network
- The ability to store customized golden images with Citrix VDA pre-installed
- Compliance with corporate security policies
- Image scanning and vulnerability assessment
- Container registry URL and port
- Username and password or API tokens
- Citrix enrollment token and customer ID
- Start with a MacStadium base image. Reference it by its OCI path (e.g. ghcr.io/macstadium/orka-images/sonoma:latest).
- Customize it with Citrix VDA and your organization’s software
-
Build and push the image by running
create_image.yml. This deploys a temporary VM from the base image, runs your scripts, pushes the resulting image to your registry, then cleans up the VM, for example:
- Cache the image on all hosts so it’s available for fast deployment, for example:
- Deploy VMs from this golden image, for example:
Support Resources
For additional assistance with Ansible playbooks and Orka operations:- MacStadium Support Portal: MacStadium
- Orka CLI Reference:
- VM Commands:
- Image Commands:
- Ansible Documentation: Ansible Community | Ansible documentation
- Citrix VDA Documentation: Citrix Virtual Delivery Agent for macOS