Linux Virtual Delivery Agent

使用轻松安装创建未加入域的 Linux VDA(预览版)

本文将引导您使用轻松安装方法在 Citrix DaaS 或 Citrix Virtual Apps and Desktops 2407 及更高版本中使用计算机目录创建和注册未加入域的 Linux VDA。

重要:

步骤 1:创建一个空的计算机目录

登录 Citrix Web Studio 并创建一个不包含计算机的空计算机目录。 Linux VDA 不支持使用令牌文件注册电源受管理的计算机目录。

创建计算机目录和添加 Linux VDA 计算机的过程与传统的 Windows VDA 方法类似。 有关如何完成这些任务的更加详细的说明,请参阅创建计算机目录管理计算机目录

创建包含 Linux VDA 计算机的计算机目录时会面临一些限制,使得该过程不同于为 Windows VDA 计算机创建计算机目录:

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

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

注意:

Citrix Studio 的早期版本不支持“Linux 操作系统”的概念。但是,选择 Windows Server 操作系统服务器操作系统选项意味着采用等效的托管共享桌面交付模式。 选择 Windows 桌面操作系统桌面操作系统选项等同于使用每计算机一个用户交付模型。

步骤 2:创建一个注册令牌

要使用轻松安装创建未加入域的 VDA,您需要一个令牌文件以将 VDA 注册到计算机目录中,并向云或本地 Delivery Controller 进行身份验证。 Linux VDA 不支持使用令牌文件注册电源受管理的计算机目录。

要创建注册令牌,请在 Citrix Web Studio 中完成以下步骤:

提示:

在 Citrix DaaS 中,Web Studio 称为“完整配置”。

  1. 选择您之前创建的空计算机目录,然后在操作栏中选择管理注册令牌

  2. 管理注册令牌页面上,单击生成以创建注册令牌。 或者,您可以选择处于有效状态的现有令牌。

  3. 按照向导完成设置。

  4. 下载成功创建的令牌,将其保存在一个安全位置并使其具有最低权限。 稍后,当您运行轻松安装脚本时,CTX_XDL_NDJ_ENROLLMENT_TOKEN_FILE 变量允许您指定用于注册 VDA 的令牌文件的路径。

步骤 3:安装 .NET

除 .NET Runtime 之外,在安装或升级 Linux VDA 之前,还必须在所有受支持的 Linux 发行版中安装 .ASP.NET Core Runtime。 Amazon Linux 2 需要版本 6。 其他发行版需要版本 8。

如果您的 Linux 发行版包含所需的 .NET 版本,请从内置源中进行安装。 否则,请从 Microsoft 软件包源中安装 .NET。 有关详细信息,请参阅 https://docs.microsoft.com/en-us/dotnet/core/install/linux-package-managers

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

根据命令输出,设置 .NET Runtime 二进制文件路径。 例如,如果命令输出为 /aa/bb/dotnet,请使用 /aa/bb 作为 .NET 二进制文件路径。

步骤 4:添加自签名的 CA 证书

将自签名的 CA 证书保存到 Linux VDA 上的 /etc/ssl/certs/ 中,并根据您的 Linux 发行版运行以下命令来更新这些证书:

  • 对于 RHEL、Rocky Linux 和 Amazon Linux 2:

       sudo update-ca-trust
     <!--NeedCopy-->
    
  • 对于 SUSE、Ubuntu 和 Debian:

       sudo update-ca-certificates
     <!--NeedCopy-->
    

步骤 5:下载 Linux VDA 软件包

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

    Citrix Virtual Apps and Desktops 的组件

  4. 单击 Linux VDA 链接可访问 Linux VDA 下载内容。

    Linux VDA 下载内容

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

  6. 下载可用于验证 Linux VDA 软件包完整性的 GPG 公钥。 例如:

    GPG 公钥

    要使用公钥验证 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-->
      

步骤 6:安装 Linux VDA 软件包

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

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

注意:

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

  • 在 RHEL 9.4/9.3/9.2 和 Rocky Linux 9.4/9.3/9.2 上安装 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”
  2. 请运行以下命令来安装 Linux VDA:

      zypper -i install <PATH>/<Linux VDA RPM>
    <!--NeedCopy-->
    

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

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

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

要安装和配置 NVIDIA GRID 来宾 VM 驱动程序,请执行下面的常规步骤:

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

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

安装 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 的端口号。

步骤 9:运行轻松安装来配置环境和 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,则要为 VDI 桌面(单会话)模式配置 VDA(即 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_DESKTOP_ENVIRONMENT=gnome/gnome-classic/kde/mate/xfce/’<none>‘ - 指定要在会话中使用的 GNOME、GNOME Classic、KDE、MATE 或 Xfce 桌面环境。 如果将其设置为“<none>”,则将使用在 VDA 上配置的默认桌面。 可以使用 CTX_XDL_DESKTOP_ENVIRONMENT 变量指定要在会话中使用的桌面环境。 您还可以通过运行命令或使用系统托盘在桌面环境之间切换。 有关详细信息,请参阅桌面切换命令系统托盘

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

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

交互式模式

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

无提示模式

在无提示模式下,必须使用 /opt/Citrix/VDA/sbin/ctxinstall.conf 或导出命令设置前面的变量。 之后,请运行 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|kde|mate|xfce|'<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小写字母)。

步骤 10:运行 XDPing

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

步骤 11:运行 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-->

步骤 12:创建交付组

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

创建含有 Linux VDA 计算机目录的交付组时会面临以下限制:

  • 确保所选 AD 用户和组已正确配置,能够登录到 Linux VDA 计算机。
  • 请勿允许未经身份验证的(匿名)用户登录。
  • 请勿在交付组中混入含有 Windows 计算机的计算机目录。

重要:

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

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

步骤 13:启用本地帐户映射

未启用本地帐户映射时如何操作

未加入域的 VDA 上托管的会话在登录时失败,显示密码提示但不接受正确的密码。 在 hdx.log 中可以找到与以下内容类似的错误:

  2024-09-25 06:40:30.767979 [LOGIN_BOX:ERROR] <P124211:T58675:S4> citrix-ctxlogin: PamAuthenticate: pam authentication: Authentication failure.   Can retry for user 'user3'
  2024-09-25 06:40:30.768431 [LOGIN:ERROR] <P124211:T58675:S4> citrix-ctxlogin: LoginBoxValidate: Failed to validate user 'user3'.   Due to INVALID_PASSWORD
  2024-09-25 06:40:30.768947 [LOGIN_AUTH:INFO] <P124218:T58682:S4> citrix-ctxloginui: CalLabelFormat: Update username label on LoginUI from 'user3' to 'user3' (18)
  2024-09-25 06:41:18.766196 [GFX_SLIDER:ERROR] <P124161:T58699:S4> citrix-ctxgfx: GfxCreateSliderListener: Failed to get user home dir.
<!--NeedCopy-->

启用本地帐户映射

为了确保用户可以登录到未加入域的 Linux VDA,请使用以下命令启用本地帐户映射:

  Set-BrokerDesktopGroup -Name "<your delivery group name>" -MachineLogOnType LocalMappedAccount
<!--NeedCopy-->

对于本地部署,请直接在 Delivery Controller 上运行该命令。 对于 Citrix DaaS 部署,请通过 Citrix Virtual Apps and Desktops Remote PowerShell SDK 运行该命令。