- You have an active Citrix DaaS or CVAD subscription (Standard tier or above)
- Administrative access to Citrix Cloud Console (https://citrix.cloud.com)
- Your Citrix Cloud Customer ID (visible in the Cloud Console)
- Completed the environment preparation steps above (Set up an Ansible runner, SSH keys, and network configuration)
- You have at least one Orka host ready to deploy VMs
Create a Machine Catalog
Machine Catalogs are logical groupings of virtual machines in Citrix. When using Orka for VDI, you’ll create a catalog specifically for your macOS desktops. With Orka for VDI, you’ll use the Remote PC Access catalog type since Citrix treats each Mac as a physical device due to Apple’s licensing requirements. Creating the Machine Catalog:- Navigate to Citrix Cloud Console → Web Studio → Machine Catalogs
- Click “Create Machine Catalog”
-
Select catalog type:
- Choose “Remote PC Access”
- This type is designed for physical Mac devices and works with Citrix VDA for macOS
- Select “Machines that are not power managed” (Orka manages the VM lifecycle)
-
Configure Machine Catalog settings:
- Catalog name: Use a descriptive name like “Orka-macOS-Sonoma-Standard” or “MacStadium-VDI-Finance”
- Description: Document the purpose, OS version, and hardware specs (e.g., “macOS Sonoma on M2 Mac mini, 16GB RAM, for finance team”)
- Session type: Single-session (each user gets their own desktop)
- User assignment: Choose based on your use case:
- Random (pooled): Users get any available desktop (non-persistent)
- Static (dedicated): Users get the same desktop every session (persistent)
-
Machine accounts:
- For non-domain-joined Macs, select “No, do not add to Active Directory”
- This requires Rendezvous protocol for connectivity
-
Add machines:
- You’ll add machines to the catalog after deploying VMs with Citrix VDA
- Machines register automatically using the enrollment token
-
Platform:
Orka-macOS -
OS version:
Sonoma,Sequoia,Ventura,Tahoe -
Hardware profile:
Standard,HighPerf,Minimal -
Department/purpose:
Finance,Engineering,Creative
Orka-macOS-Sonoma-HighPerf-Engineering
Generating an Enrollment Token
An enrollment token is critical for connecting your Orka-hosted VMs to Citrix Cloud. This token authenticates the VDA during registration and associates the machine with your Citrix DaaS environment. To generate an enrollment token:- Navigate to Citrix Cloud Console → Web Studio → Machine Catalogs
- Select your Machine Catalog (created in previous step)
- Click “Enable Enrollment Token” or navigate to the enrollment token section
-
Configure token settings:
- Token name: Descriptive identifier (e.g., “Orka-Finance-Q1-2026”)
- Expiration: Set based on your deployment timeline
- 12 hours: For immediate testing
- 7 days: Standard deployment window
- 30 days: Ongoing/phased rollouts
- Number of uses:
- Unlimited (default): Token can register multiple VMs
- Limited: Specify exact number if needed for strict control
-
Copy the token immediately:
- The token is displayed only once
- Store it securely in your Ansible Vault
- If lost, generate a new token (old token remains valid until expiration)
sudo /opt/Citrix/VDA/bin/VdaEnrollmentTool -EnrollmentToken:<token> -Restart
Token troubleshooting:
If VMs fail to register:
- Verify that the specified enrollment token hasn’t expired
-
Confirm network connectivity to
[customer_ID].xendesktop.net - Check token was copied completely (no truncation or extra characters)
- Ensure that the token is associated with the correct Machine Catalog
-
Review VDA logs at
/Library/Application Support/Citrix/VDA/Logs/
Configure Delivery Groups
Delivery Groups control which users can access which machines and define the user experience policies. Creating a Delivery Group:- Navigate to Citrix Cloud Console → Web Studio → Delivery Groups
- Click “Create Delivery Group”
-
Select machines:
- Choose the Machine Catalog created earlier
- Specify how many machines to include (can be all or a subset)
-
Configure users:
- Add users or groups who should have access
- Options include:
- Active Directory users/groups (if domain-joined)
- Azure AD users/groups
- Individual user accounts
- For testing, you can use “Allow unauthenticated users” (Note: This is not recommended for production)
-
Delivery Group name and settings:
- Name: Descriptive, for example: “Finance-macOS-VDI” or “Engineering-Sonoma-Desktops”
- Display name: What users see in Citrix Workspace (e.g., “macOS Finance Desktop”)
- Description: Document purpose and access requirements
- Time zone: Set to match user locations or leave as client time zone
-
Configure desktop assignment:
- For pooled (random) catalogs: Users get any available desktop
- For dedicated (static) catalogs: Users are permanently assigned to specific desktops
-
Application and desktop delivery:
- Published Desktop: Users access a full macOS desktop
- Published Applications: Specific apps published to users
- For Citrix + Orka VDI, select the “Add Desktop” delivery type
-
Session policies:
- Configure session timeout settings
- Set idle session behavior
- Define reconnection policies
- Enable or disable features like printing, clipboard, USB redirection
-
Authentication method: How users prove their identity
- Active Directory (traditional)
- Azure AD / Okta / other SAML providers
- Multi-factor authentication (MFA) support
-
Access from: Define where users can connect from
- Internal network only
- Remote access via Citrix Gateway
- Both internal and external
-
Device posture: (Optional) Restrict based on device compliance
- Managed devices only
- Endpoint security requirements
- Operating system versions
- Finance-Standard-Users → Access to M2 Mac mini VMs
- Engineering-Power-Users → Access to M4 Pro Mac mini VMs
- Creative-Graphics-Team → Access to Mac Studio M2 Ultra VMs
Enable Rendezvous for Non-Domain-Joined Devices
Rendezvous protocol enables HDX connections to VDAs that aren’t joined to an Active Directory domain. When to use Rendezvous: Use Rendezvous when:- VMs are not domain-joined
- Users access from external networks
- You want simplified firewall configuration
- VMs are behind NAT or have private IPs
- You’re deploying cloud-hosted Macs
- All VMs are domain-joined
- You have on-premises StoreFront and Gateway already deployed
- Your security policy requires traditional reverse proxy architecture
- Performance is absolutely critical (Rendezvous adds minimal overhead, but some organizations prefer direct connections)
- In Citrix Cloud Console → Web Studio → Configuration → Policies
- Create or edit a policy for your Delivery Group
- Navigate to ICA/HDX settings
-
Configure Rendezvous settings:
- HDX Adaptive Transport: Set to “Preferred” or “Server Only”
- Rendezvous Protocol: Enable
- WebSocket connections: Allow
-
On the VDA side:
- The VDA automatically detects Rendezvous capability
- Establishes outbound connection to
*.*.nssvc.net - Maintains persistent WebSocket connection for HDX session brokering
-
*.*.nssvc.neton TCP/UDP port 443 -
If your firewall requires specific subdomains, use:
*.g.nssvc.net(Gateway Service)*.c.nssvc.net(Control plane)
- User launches desktop from Citrix Workspace
- Citrix Cloud Delivery Controller selects available VDA
- Instead of direct connection, Cloud signals VDA via persistent Rendezvous channel
- VDA initiates outbound HDX connection to Citrix Gateway Service
- User’s Workspace client connects to Gateway Service
- Gateway Service proxies HDX traffic between client and VDA
- VDA must be domain-joined
- Configure traditional StoreFront and NetScaler Gateway
-
Update VDA configuration:
- Disable Rendezvous in VDA settings
- Point VDA to StoreFront servers instead of Cloud Connectors
- Check VDA registration status in Citrix Cloud Console
- Look for Rendezvous connection in VDA logs
- Launch a test session from Citrix Workspace
- Monitor connection establishment (should not require VPN or special network access)
- Verify session performance meets expectations
-
Verify outbound connectivity to
*.*.nssvc.neton port 443 - Check proxy settings if environment uses HTTP proxy
- Review VDA logs for Rendezvous registration errors
- Confirm WebSocket connections aren’t blocked by firewall
- Test with Citrix Workspace app (ensure version 2402 or later)
Deploy Citrix VDA inside VMs
Citrix VDA installation enables macOS VMs to register with Citrix Cloud and deliver desktop sessions to end users. Deployment can be performed manually for small environments or automated via Ansible for scale. Preparation steps:-
Download Citrix VDA for macOS:
- Access Citrix Downloads portal
- Locate “Citrix VDA for macOS” package
- Download latest stable version
- Verify package integrity
-
Install Microsoft .NET Runtime 8.0:
- Required dependency for VDA enrollment and registration
- Download from Microsoft package feed for macOS
- Reference: Install .NET on macOS - .NET
- Install on base image or individual VMs
-
Prepare installation parameters:
- Citrix enrollment token
- Customer ID
- Delivery controller addresses or cloud endpoint
- Network configuration settings
-
Deploy test VM from base image:
-
Use Orka Engine to create a VM from a macOS base image
- Allocate appropriate VM resources (CPU, RAM, storage)
- Attach VM to correct network bridge
- Start VM and establish SSH access
-
Use Orka Engine to create a VM from a macOS base image
-
Copy VDA installer to VM:
- Transfer CitrixVDA.pkg to VM via SCP or shared storage
- Also copy .NET Runtime installer if not in base image
-
Install prerequisites:
- Install .NET Runtime 8.0
- Verify installation successful
- Restart if required
-
Install Citrix VDA:
- Run VDA installer package with administrative privileges
- Provide enrollment token during installation (note: enrollment can take 5-10 minutes)
- Specify Citrix Cloud customer ID
- Configure network settings (Rendezvous enabled if non-domain-joined)
- Complete installation and restart VM
-
Initial configuration:
- VDA service starts automatically after installation
- Verify VDA service is running
- Check log files for any errors
- Confirm network connectivity to Citrix Cloud endpoints
-
Deploy a clean VM using Orka Engine
- Install .NET Runtime 8.0
- Install Citrix VDA (without enrolling)
- Configure base settings
- Commit VM to create image
- Push image to OCI registry
- Deploy new VMs from this golden image
- Each VM enrolls automatically on first boot using your enrollment token
-
--enrollment-token- Token from Citrix Cloud (stored in Ansible Vault) -
--customer-id- Your Citrix Cloud customer ID -
--cloud-connector- Citrix Cloud DaaS endpoint -
--enable-rendezvous- Enable for non-domain-joined VMs -
--delivery-controller- For on-premises CVAD (FQDN of controllers)
- Create a golden image from the previously configured VM
- Tag image with version information
-
Push to private registry
- Document installed software versions
- Test image deployment before marking as production-ready
Verify VDA Registration with an Enrollment Token
Verifying VDA registration ensures that VMs are successfully registered with Citrix Cloud and are available for user sessions. This step is crucial, as it validates the entire integration between Orka, VDA, and Citrix DaaS. Registration process overview:- VDA service initializes on boot
- VDA reads configuration (enrollment token, customer ID)
- VDA establishes outbound HTTPS connection to Citrix Cloud
- VDA authenticates using enrollment token
- VDA registers with specified Machine Catalog
- Citrix Cloud adds VM to available desktop pool
- VDA maintains heartbeat connection to Cloud
- Navigate to Citrix Cloud Console → Web Studio
- Go to Machine Catalogs → Select your catalog
- View list of registered machines
-
Verify your VM appears with:
- Machine name (hostname)
- Registration state: “Registered”
- Power state: “On”
- Session state: “Available”
-
Log location:
/Library/Application Support/Citrix/VDA/Logs/ -
Key log files:
vda.log- Main VDA service logregistration.log- Registration-specific eventsbroker.log- Communication with Citrix Cloud
- “Registration successful”
- “Broker connection established”
- “VDA ready to accept sessions”
Common registration issues
Enrollment token problems:- Expired token: Generate new token, update Ansible Vault, redeploy VDA
- Invalid token: Verify the token was copied correctly (no truncation or extra characters)
- Token already used (if tokens are limited): Generate a new token or increase use limit
-
Cannot reach Citrix Cloud: Verify outbound HTTPS (TCP 443) allowed to
*.xendesktop.net -
Gateway Service unreachable: Confirm access to
*.*.nssvc.neton port 443 - DNS resolution failure: Check VM DNS configuration, test name resolution
- Wrong customer ID: Verify customer ID matches the Citrix Cloud tenant
- Machine Catalog mismatch: Ensure enrollment token is associated with the correct machine catalog
- VDA version incompatibility: Update to supported VDA version
- Corporate firewall blocking: Whitelist required Citrix endpoints
- Proxy misconfiguration: Configure VDA proxy settings if environment requires proxy
- SSL inspection interference: Exclude Citrix endpoints from SSL decryption
Check VDA service status:
Restart VDA service:
View VDA logs:
Test Citrix Cloud connectivity:
- A network outage disconnected the VM from Citrix Cloud
- The VDA service restarted or crashed
- The VM was moved to different network segment
- An enrollment token was rotated/updated
- Citrix Cloud maintenance occurred

