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 (formerly Citrix Virtual Apps and Desktops 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 9.2
  • RHEL 9.0
  • RHEL 8.8
  • RHEL 8.6
  • Rocky Linux 9.2
  • Rocky Linux 9.0
  • Rocky Linux 8.8
  • Rocky Linux 8.6
  • SUSE 15.5
  • Ubuntu 22.04
  • Ubuntu 20.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. Specify a database to use.

    As an experimental feature, you can use SQLite in addition to PostgreSQL. You can also switch between SQLite and PostgreSQL after installing the Linux VDA package. To do so, complete the following steps:

    1. Run /opt/Citrix/VDA/sbin/ Omit this step if it is a fresh installation.

    2. Edit /etc/xdl/db.conf before running


      • We recommend you use SQLite for VDI mode only.
      • For easy install and MCS, you can switch between SQLite and PostgreSQL without having to install them manually. Unless otherwise specified through /etc/xdl/db.conf, the Linux VDA uses PostgreSQL by default.
      • You can also use /etc/xdl/db.conf to configure the port number for PostgreSQL.
  8. Change MCS variables.

    There are two ways to configure MCS variables:

    • Edit the /etc/xdl/mcs/mcs.conf file.
    • Use the easy install GUI. To open the easy install GUI, run the /opt/Citrix/VDA/bin/easyinstall command in the desktop environment of your Linux VDA.


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

      If you configure MCS variables by editing /etc/xdl/mcs/mcs.conf, run /opt/Citrix/VDA/sbin/ If you configure MCS variables by using the GUI, click Deploy.

      Deploy button on the easy install GUI

      After you click Deploy on the GUI, the variables you set on the GUI override the variables you set in the /etc/xdl/mcs/mcs.conf file.

  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.

    Image of 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.

    Image of 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