Linux Virtual Delivery Agent

Create Linux VDAs in Citrix DaaS Standard for Azure

You can create both domain-joined and non-domain-joined Linux VDAs in Citrix DaaS Standard for Azure to deliver virtual apps and desktops to any device from Microsoft Azure. For more information, see Citrix DaaS Standard for Azure.

Supported Linux distributions

The following Linux distributions support this feature:

  • RHEL 8.8
  • RHEL 8.6
  • RHEL 8.3
  • RHEL 8.2
  • RHEL 7.8
  • Rocky Linux 8.8/8.6
  • Ubuntu 20.04
  • Ubuntu 18.04

Step 1: Prepare a master image in Azure


You can also use the Linux VDA self-update feature to schedule automatic software updates. To achieve this goal, add command lines to the etc/xdl/mcs/mcs_local_setting.reg file on the master image. For example, you can add the following command lines:

create -k "HKLM\System\CurrentControlSet\Control\Citrix\SelfUpdate" -t "REG_DWORD" -v "fEnabled" -d "0x00000001" –force

create -k "HKLM\System\CurrentControlSet\Control\Citrix\SelfUpdate" -t "REG_SZ" -v "ScheduledTime" -d "Immediately" –force

create -k "HKLM\System\CurrentControlSet\Control\Citrix\SelfUpdate" -t "REG_SZ" -v "Url" -d "<Your-Azure-Container-Url>" –force

create -k "HKLM\System\CurrentControlSet\Control\Citrix\SelfUpdate" -t "REG_SZ" -v "CaCertificate" -d "<Local-Certificate-Path-of-PortalAzureCom>" --force
  1. In Azure, create a Linux VM of a supported distribution.
  2. Install a desktop environment on the Linux VM if necessary.
  3. On the VM, install .NET Runtime 6.0 according to the instructions at
  4. (For Ubuntu only) Add the source /etc/network/interfaces.d/* line to the /etc/network/interfaces file.
  5. (For Ubuntu only) Point /etc/resolv.conf to /run/systemd/resolve/resolv.conf instead of pointing it to /run/systemd/resolve/stub-resolv.conf:

    unlink /etc/resolv.conf
    ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
  6. Install the Linux VDA package.
  7. Change variables in /etc/xdl/mcs/mcs.conf. The mcs.conf configuration file contains variables for setting MCS and the Linux VDA.


    Leave the dns variable unspecified. If you select the Static or Random type when creating a machine catalog, set VDI_MODE=Y.

  8. Run /opt/Citrix/VDA/sbin/
  9. In Azure, stop (or deallocate) the VM. Click Disk Export to generate a SAS URL for the Virtual Hard Disk (VHD) file that you can use as a master image to create other VMs.

    Generate a URL for the VHD file

  10. (Optional) Make group policy settings on the master image. You can use the ctxreg tool to make group policy settings. For example, the following command enables the Auto-create PDF Universal Printer policy for PDF printing.

    /opt/Citrix/VDA/bin/ctxreg create -k "HKLM\Software\Citrix\GroupPolicy\Defaults\PrintingPolicies" -t "REG_DWORD" -v "AutoCreatePDFPrinter" -d "0x00000001" –force

Step 2: Import the master image from Azure

  1. From the Manage dashboard, expand Master Images on the right. The display lists the master images that Citrix provides, and images that you created and imported.


    Most of the administrator activities for this service are managed through the Manage and Monitor dashboards. After you create your first catalog, the Manage dashboard launches automatically after you sign in to Citrix Cloud and select the Managed Desktops service.

    Master Images

  2. Click Import Image.
  3. Enter the SAS URL for the VHD file that you generated in Azure. Select Linux for the master image type.

    Import an image from Azure

  4. Follow the instructions in the wizard to complete importing the master image.

Step 3: Create a Machine Catalog

Access the Manage dashboard and click Create Catalog. When creating the Machine Catalog, choose the master image you created earlier.


The VM used as a master image is not accessible through SSH or RDP. To access the VM, use the Serial Console in the Azure portal.

Create Linux VDAs in Citrix DaaS Standard for Azure