Linux Virtual Delivery Agent

使用简易安装创建非域加入的 Linux VDA(预览版)

本文将指导您使用简易安装在 Citrix DaaS 中创建非域加入的 Linux VDA。

重要提示:

  • Citrix DaaS 支持非域加入的 VDA。
    • 您的控制平面必须通过 Citrix DaaS 部署。
    • 您可以在公有云或本地数据中心部署非域加入的 VDA。非域加入的 VDA 由 Citrix DaaS 中的控制平面管理。
    • 要创建非域加入的 VDA,使用 Citrix Gateway 服务的客户必须确保已启用 Rendezvous V2。仅当您计划在本地虚拟机管理程序上预配计算机或希望使用 Active Directory 作为 Workspace 中的身份提供程序时,才需要 Cloud Connector。
  • 要创建非域加入的 VDA,您也可以使用 MCS。有关详细信息,请参阅使用 MCS 创建非域加入的 Linux VDA
    • MCS 不支持裸机服务器。
  • 非域加入的 Linux VDA 提供以下功能:
  • 使用 Azure Active Directory 进行身份验证
  • Rendezvous V2

步骤 1:创建计算机目录

创建一个不包含任何计算机的空计算机目录。例如,使用 Citrix Remote PowerShell SDK 并运行以下命令来创建名为 Your-catalog-name 且支持单会话操作系统计算机的空计算机目录。

-  New-BrokerCatalog -AllocationType 'Static' -Description 'Your description' -MinimumFunctionalLevel 'L7_20' -Name 'Your-catalog-name' -SessionSupport 'SingleSession' -PersistUserChanges 'OnLocal' -ProvisioningType 'Manual' -MachinesArePhysical $true
<!--NeedCopy-->
-  记录所创建目录的 UUID。稍后创建注册令牌时需要此 UUID。

-  创建计算机目录和添加 Linux VDA 计算机的过程与传统的 Windows VDA 方法类似。有关如何完成这些任务的更详细说明,请参阅[创建计算机目录](/zh-cn/citrix-virtual-apps-desktops/install-configure/machine-catalogs-create.html)和[管理计算机目录](/zh-cn/citrix-virtual-apps-desktops/install-configure/machine-catalogs-manage.html)。

对于创建包含 Linux VDA 计算机的计算机目录,有一些限制使该过程与创建 Windows VDA 计算机的计算机目录有所不同:

  • 对于操作系统,请选择:

    • 多会话操作系统选项,用于托管共享桌面交付模型。
    • 单会话操作系统选项,用于 VDI 专用桌面交付模型。
  • 请勿在同一计算机目录中混合使用 Linux 和 Windows VDA 计算机。
  • 请勿在同一计算机目录中混合使用域加入和非域加入的计算机。
  • Remote PC Access 计算机目录仅支持域加入的计算机,不支持非域加入的计算机。

注意:

早期版本的 Citrix Studio 不支持“Linux OS”的概念。但是,选择 Windows Server OSServer OS 选项表示等效的托管共享桌面交付模型。选择 Windows Desktop OSDesktop OS 选项表示每台计算机一个用户的交付模型。

步骤 2:创建 VDA 注册令牌

要使用简易安装创建非域加入的 VDA,您需要一个令牌文件来将 VDA 注册到计算机目录并将 VDA 身份验证到 Citrix Cloud™ 控制平面。Linux VDA 不支持使用令牌文件注册到电源管理的计算机目录。

要创建注册令牌,请向 URL:[DdcServerAddress]/citrix/orchestration/api/techpreview/{customerid}/{siteid}/enrollments 发送类似于以下内容的 HTTP POST 消息。

    -  POST https://[DdcServerAddress]/citrix/orchestration/api/techpreview/[customerid]/[siteid]/enrollments HTTP/1.1
    -  Accept: application/json
Content-Type: application/json; charset=utf-8
Authorization: Bearer <bearer-token>

{
  "TokenName": "string",
  "IssuedToUser": "string",
  "ExpirationDate": "2023-10-13T08:00:25.796Z",
  "NotValidBeforeDate": "2023-10-13T08:00:25.796Z",
  "NumMachinesAllowed": number,
  "CatalogId": "string"
}
<!--NeedCopy-->

在 HTTP POST 消息中,将 CatalogId 设置为您之前创建的计算机目录的 UUID,并根据需要将 [DdcServerAddress] 设置为以下之一:

  • 商业版 https://[customerid].xendesktop.net
  • 日本 https://[customerid].apps.citrixworkspacesapi.jp
  • 政府版 https://[customerid].xendesktop.us

步骤 3:安装 .NET Runtime 6.0

在安装 Linux VDA 之前,请按照 https://docs.microsoft.com/en-us/dotnet/core/install/linux-package-managers 上的说明安装 .NET Runtime 6.0。

安装 .NET Runtime 6.0 后,运行 which dotnet 命令以查找您的运行时路径。

根据命令输出,设置 .NET 运行时二进制路径。例如,如果命令输出为 /aa/bb/dotnet,则使用 /aa/bb 作为 .NET 二进制路径。

步骤 4:下载 Linux VDA 软件包

  1. 转至 Citrix Virtual Apps and Desktops 下载页面
  2. 展开相应版本的 Citrix Virtual Apps and Desktops。
  3. 展开 Components(组件)以查找 Linux VDA。例如:

    Components for Citrix Virtual Apps and Desktops

  4. 单击 Linux VDA 链接以访问 Linux VDA 下载。

    Linux VDA downloads

  5. 下载与您的 Linux 发行版匹配的 Linux VDA 软件包。

  6. 下载 GPG 公钥,您可以使用它来验证 Linux VDA 软件包的完整性。例如:

    GPG public key

    要使用公钥验证 Linux VDA 软件包的完整性:

    • 对于 RPM 软件包,运行以下命令将公钥导入 RPM 数据库并检查软件包完整性:

       rpmkeys --import <path to the public key>
       rpm --checksig --verbose <path to the Linux VDA package>
       <!--NeedCopy-->
      
    • 对于 DEB 软件包,运行以下命令将公钥导入 DEB 数据库并检查软件包完整性:

      
       -  sudo apt-get install dpkg-sig
       -  gpg --import <path to the public key>
       dpkg-sig --verify <path to the Linux VDA package>
      
       <!--NeedCopy-->
      

步骤 5:安装 Linux VDA 软件包

要设置 Linux VDA 的环境,请运行以下命令。

  • 对于 Amazon Linux 2、CentOS、RHEL 和 Rocky Linux 发行版:

  • 注意:

    • 对于 RHEL 和 CentOS,请在成功安装 Linux VDA 之前安装 EPEL 存储库。有关如何安装 EPEL 的信息,请参阅 https://docs.fedoraproject.org/en-US/epel/ 上的说明。

    • 在 RHEL 9.2/9.0 和 Rocky Linux 9.2/9.0 上安装 Linux VDA 之前,请将 libsepol 软件包更新到版本 3.4 或更高版本。

sudo yum  -y localinstall   <PATH>/<Linux VDA RPM>
<!--NeedCopy-->

注意:

在 GCP 上托管的 RHEL 8.x/9.x 和 Rocky Linux 8.x/9.x 上安装 Linux VDA 后,以太网连接可能会丢失,并且 VM 重启后 Linux VDA 可能无法访问。要解决此问题,请在首次登录 VM 时设置 root 密码,并确保您可以以 root 身份登录 VM。然后,在重启 VM 后在控制台中运行以下命令:

nmcli dev connect eth0
systemctl restart NetworkManager
<!--NeedCopy-->

适用于 Ubuntu/Debian 分发版:

-  sudo dpkg -i <PATH>/<Linux VDA deb>
    -  sudo apt-get install -f
<!--NeedCopy-->
  • 注意:

    -  要为 Debian 11 分发版安装必要的依赖项,请将 `deb http://deb.debian.org/debian/ bullseye main` 行添加到 /etc/apt/sources.list 文件中。
    
    -  对于 GCP 上的 Ubuntu 20.04,请禁用 RDNS。为此,请在 /etc/krb5.conf 中 **[libdefaults]** 下添加 **rdns = false** 行。
    

适用于 SUSE 分发版:

  1. 对于 AWS、Azure 和 GCP 上的 SUSE 15.5,请确保:

    • 您使用的是 libstdc++6 版本 12 或更高版本。
    • /etc/sysconfig/windowmanager 中的 Default_WM 参数设置为 “gnome”
    1. 运行以下命令以安装 Linux VDA:
     zypper -i install <PATH>/<Linux VDA RPM>
    
     <!--NeedCopy-->
    

步骤 6:安装 NVIDIA GRID 驱动程序

启用 HDX™ 3D Pro 需要您在管理程序和 VDA 计算机上安装 NVIDIA GRID 驱动程序。

    -  要在特定管理程序上安装和配置 NVIDIA GRID Virtual GPU Manager(主机驱动程序),请参阅以下指南:

要安装和配置 NVIDIA GRID 访客 VM 驱动程序,请执行以下常规步骤:

  1. 确保访客 VM 已关闭。
  2. 在管理程序控制面板中,为 VM 分配一个 GPU。
  3. 启动 VM。
  4. 在 VM 上安装访客 VM 驱动程序。

步骤 7:指定要使用的数据库

    -  安装 Linux VDA 软件包后,您可以通过编辑 **/etc/xdl/db.conf** 来指定使用 SQLite 或 PostgreSQL。

为此,请在运行 sudo /opt/Citrix/VDA/sbin/ctxinstall.sh/opt/Citrix/VDA/bin/easyinstall 之前编辑 /etc/xdl/db.conf

注意:

  • 我们建议您仅在 VDI 模式下使用 SQLite。
  • 对于轻松安装和 MCS,您可以指定使用 SQLite 或 PostgreSQL,而无需手动安装它们。除非通过 /etc/xdl/db.conf 另行指定,否则 Linux VDA 默认使用 PostgreSQL。
  • 您还可以使用 /etc/xdl/db.conf 配置 PostgreSQL 的端口号。

步骤 8:运行轻松安装以配置环境和 VDA 以完成安装

安装 Linux VDA 软件包后,使用 ctxinstall.sh 脚本配置运行环境。

注意:

在设置运行时环境之前,请确保您的操作系统中已安装 en_US.UTF-8 区域设置。如果您的操作系统中没有该区域设置,请运行 sudo locale-gen en_US.UTF-8 命令。对于 Debian,请通过取消注释 # en_US.UTF-8 UTF-8 行来编辑 /etc/locale.gen 文件,然后运行 sudo locale-gen 命令。

ctxinstall.sh

ctxinstall.sh 是用于执行一些预配置和设置 VDA 运行环境变量的轻松安装脚本。

  • 只有 root 用户才能运行此脚本。

  • 轻松安装使用 /opt/Citrix/VDA/sbin/ctxinstall.conf 作为其配置文件来设置、保存和同步所有使用的环境变量的值。我们建议您仔细阅读模板 (ctxinstall.conf.tmpl),然后自定义您自己的 ctxinstall.conf。首次创建配置文件时,请使用以下任一方法:

    • 通过复制 /opt/Citrix/VDA/sbin/ctxinstall.conf.tmpl 模板文件并将其另存为 /opt/Citrix/VDA/sbin/ctxinstall.conf。
      • 通过运行 ctxinstall.sh。每次运行 ctxinstall.sh 时,您的输入都会保存到 /opt/Citrix/VDA/sbin/ctxinstall.conf 中。

      • 轻松安装支持模块化运行。模块包括预检查、安装、域配置、设置和验证。

      • 此脚本的调试详细信息可在 /var/log/xdl/ctxinstall.log 中找到。

有关详细信息,请使用帮助命令 ctxinstall.sh -h

注意:

  • 遵循最小权限原则,确保只有 root 用户才能读取 /opt/Citrix/VDA/sbin/ctxinstall.conf,因为域加入密码可能在该文件中设置。
  • 卸载 Linux VDA 会删除 /opt/Citrix/VDA 下的文件。我们建议您在卸载 VDA 之前备份 /opt/Citrix/VDA/sbin/ctxinstall.conf

您可以在交互模式或静默模式下运行 ctxinstall.sh。在运行脚本之前,请设置以下环境变量:

  • **CTX_XDL_NON_DOMAIN_JOINED=’y|n’** – 是否将计算机加入 域。默认值为 ‘n’。对于未加入域的场景,请将其设置为 ‘y’。

  • CTX_XDL_NDJ_ENROLLMENT_TOKEN_FILE=’<path-to-token-file-on-vda-machine>‘ – 要使用轻松安装创建未加入域的 VDA,您需要一个令牌文件才能将 VDA 注册到 Delivery Controller 的计算机目录中。将令牌保存到具有最小权限的适当路径下的文件中。

  • CTX_XDL_VDI_MODE=’y|n’ – 是否将计算机配置为专用桌面交付模型 (VDI) 或托管共享桌面交付模型。对于 HDX 3D Pro 环境,请将该值设置为 ‘y’。
  • CTX_XDL_HDX_3D_PRO=’y|n’ – Linux VDA 支持 HDX 3D Pro,这是一套旨在优化富图形应用程序虚拟化的 GPU 加速技术。如果选择 HDX 3D Pro,则 VDA 将配置为 VDI 桌面(单会话)模式 -(即 CTX_XDL_VDI_MODE=’y’)。

  • CTX_XDL_START_SERVICE=’y|n’ – 确定配置完成后是否启动 Linux VDA 服务。

  • CTX_XDL_REGISTER_SERVICE=’y|n’ – Linux Virtual Desktop 服务在计算机启动后启动。

  • CTX_XDL_ADD_FIREWALL_RULES=’y|n’ – Linux VDA 服务需要允许通过系统防火墙传入网络连接。您可以自动在系统防火墙中为 Linux Virtual Desktop 打开所需的端口(默认端口为 80 和 1494)。

  • CTX_XDL_DESKTOP_ENVIRONMENT=gnome/gnome-classic/mate – 指定在会话中使用的 GNOME、GNOME Classic 或 MATE 桌面环境。如果未指定该变量,则使用 VDA 上配置的默认桌面。

  • CTX_XDL_DOTNET_RUNTIME_PATH=’<path-to-install-dotnet-runtime>‘ – 用于安装 .NET Runtime 6.0 以支持新的代理服务 (ctxvda) 的路径。默认路径为 ‘/usr/bin’。

  • CTX_XDL_VDA_PORT=’<port-number>‘ – Linux VDA 通过 TCP/IP 端口与 Delivery Controller 通信。

注意事项

  • 您还可以通过完成以下步骤更改目标会话用户的桌面环境:

    1. 在 VDA 上的 $HOME/<username> 目录下创建 .xsession.Xclients 文件。如果您使用的是 Amazon Linux 2,请创建 .Xclients 文件。如果您使用的是其他分发版,请创建 .xsession 文件。
    1. 编辑 .xsession.Xclients 文件以根据分发版指定桌面环境。

      • 对于 MATE desktop

         MSESSION="$(type -p mate-session)"  
         if [ -n "$MSESSION" ]; then  
         exec mate-session  
         fi
         <!--NeedCopy-->
        
      • 对于 GNOME Classic desktop

         GSESSION="$(type -p gnome-session)"  
         if [ -n "$GSESSION" ]; then  
         export GNOME_SHELL_SESSION_MODE=classic  
         exec gnome-session --session=gnome-classic  
         fi  
         <!--NeedCopy-->
        
      • 对于 GNOME desktop

         GSESSION="$(type -p gnome-session)"  
         if [ -n "$GSESSION" ]; then  
         exec gnome-session  
         fi  
         <!--NeedCopy-->
        
    2. 与目标会话用户共享 700 文件权限。

    从版本 2209 开始,会话用户可以自定义其桌面环境。要启用此功能,您必须提前在 VDA 上安装可切换的桌面环境。有关详细信息,请参阅会话用户自定义桌面环境

交互模式

要运行 ctxinstall.sh 脚本,请在交互模式下使用不带 -S 选项的 sudo /opt/Citrix/VDA/sbin/ctxinstall.sh 命令。在命令行界面中的每个提示符处键入相关的变量值。如果变量已设置,ctxinstall.sh 会询问您是否要更改它以进行确认。

静默模式

在静默模式下,您必须使用 /opt/Citrix/VDA/sbin/ctxinstall.conf 或 export 命令设置上述变量。之后,运行 ctxinstall.sh -S(请注意,这里的字母 S大写)。如果并非所有必需变量都已设置或某些值无效,则 ctxinstall.sh 将中止执行,除非存在默认值。

如果设置了,每个变量的导出值将覆盖 /Citrix/VDA/sbin/ctxinstall.conf 中的值。所有更新的值都保存在 /Citrix/VDA/sbin/ctxinstall.conf 中。

export CTX_XDL_NON_DOMAIN_JOINED='y'
export CTX_XDL_NDJ_ENROLLMENT_TOKEN_FILE='<token-file-path>'
export CTX_XDL_VDI_MODE='y|n'
export CTX_XDL_START_SERVICE='y|n'
export CTX_XDL_REGISTER_SERVICE='y|n'
export CTX_XDL_ADD_FIREWALL_RULES='y|n'
export CTX_XDL_HDX_3D_PRO='y|n'
export CTX_XDL_DESKTOP_ENVIRONMENT= gnome | gnome-classic | mate | '<none>'
export CTX_XDL_DOTNET_RUNTIME_PATH='<path-to-install-dotnet-runtime>'
export CTX_XDL_VDA_PORT='<port-number>'
sudo -E /opt/Citrix/VDA/sbin/ctxinstall.sh -S
<!--NeedCopy-->

运行 sudo 命令时,键入 -E 选项以将现有环境变量传递到其创建的新 shell。我们建议您使用 #!/bin/bash 作为第一行,从上述命令创建 shell 脚本文件。

或者,您可以使用单个命令指定所有变量。

要设置 VDA 运行环境变量(以“CTX_XDL_”开头的变量),您可以运行 ctxinstall.sh -s(请注意,这里的字母 s小写)。

步骤 9:运行 XDPing

运行 sudo /opt/Citrix/VDA/bin/xdping 以检查 Linux VDA 环境中的常见配置问题。有关详细信息,请参阅 XDPing

步骤 10:运行 Linux VDA

启动 Linux VDA:

要启动 Linux VDA 服务:

sudo systemctl start ctxhdx.service

sudo systemctl start ctxvda.service
<!--NeedCopy-->

停止 Linux VDA:

要停止 Linux VDA 服务:

sudo systemctl stop ctxvda.service

sudo systemctl stop ctxhdx.service
<!--NeedCopy-->

注意:

在停止 ctxvdactxhdx 服务之前,请运行 systemctl stop ctxmonitord 命令以停止监视器服务守护程序。否则,监视器服务守护程序会重新启动您停止的服务。

重新启动 Linux VDA:

要重新启动 Linux VDA 服务:

sudo systemctl stop ctxvda.service

sudo systemctl restart ctxhdx.service

sudo systemctl start ctxvda.service
<!--NeedCopy-->

检查 Linux VDA 的状态:

要检查 Linux VDA 服务的运行状态:

sudo systemctl status ctxvda.service

sudo systemctl status ctxhdx.service
<!--NeedCopy-->

步骤 11:创建交付组

创建交付组和添加包含 Linux VDA 计算机的计算机目录的过程与 Windows VDA 计算机几乎相同。有关如何完成这些任务的更详细说明,请参阅创建交付组

对于创建包含 Linux VDA 计算机目录的交付组,适用以下限制:

  • 确保您选择的 AD 用户和组已正确配置为登录到 Linux VDA 计算机。
  • 不允许未经身份验证(匿名)的用户登录。
  • 请勿将交付组与包含 Windows 计算机的计算机目录混合使用。

重要提示:

Linux VDA 1.4 及更高版本支持发布应用程序。但是,Linux VDA 不支持将桌面和应用程序交付到同一台计算机。

有关如何创建计算机目录和交付组的信息,请参阅 Citrix Virtual Apps and Desktops 7 2311