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 计算机。
  • 请勿在同一计算机目录中混合使用已加入域和未加入域的计算机。
  • 要创建令牌注册计算机目录,请在计算机类型页面上选择单会话操作系统多会话操作系统,并在计算机管理页面上选择“未进行电源管理的计算机(例如,物理机)”

注意:

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

步骤 2:创建注册令牌

要使用简易安装创建未加入域的 VDA,您需要一个令牌文件来将 VDA 注册到计算机目录,并将 VDA 身份验证到云或本地交付控制器。Linux VDA 不支持使用令牌文件注册到电源管理的计算机目录。

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

提示:

在 思杰 DaaS 中,Web 工作室 称为 完整配置。

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

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

  3. 按照向导的指示完成设置。

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

步骤 3:安装 .NET

在安装 Linux VDA 软件包之前,请根据系统要求安装 .NET。

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

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

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

有关配置自签名 CA 证书的详细信息,请参阅为 WebSocket 配置自签名证书。本节涉及在 Linux VDA 上放置和更新 CA 证书。

  • For RHEL and Rocky Linux:

    将自签名 CA 证书保存到 Linux VDA 上的 /etc/pki/ca-trust/source/anchors 目录,然后运行以下命令更新证书:

     sudo update-ca-trust
     <!--NeedCopy-->
    
  • For SUSE, Ubuntu, and Debian:

    Place the root CA certificate in the /usr/local/share/ca-certificates directory. Then, run the update-ca-certificate command.

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

步骤 5:下载 Linux VDA 软件包

  1. 转到 Citrix 虚拟应用和桌面 下载页面
  2. 展开相应版本的 Citrix 虚拟应用和桌面。
  3. 展开 组件 以查找 Linux VDA。例如:

    Citrix 虚拟应用和桌面 的组件

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

    Linux 虚拟投递代理 下载

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

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

    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 设置环境,请运行以下命令。

对于 RHEL 和 Rocky Linux 操作系统发行版:

注意:

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

  • Before installing the Linux VDA on RHEL 9.x and Rocky Linux 9.x, update the libsepol package to version 3.4 or later.

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

For Ubuntu/Debian distributions:

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 24.04/22.04 系统,请禁用 RDNS 功能。为此,您需要在 /etc/krb5.conf 文件中的 [libdefaults] 部分下方添加 rdns = false 这一行配置。

对于 SUSE 发行版:

  1. 对于在 AWS、Azure 和 GCP 上运行的 SUSE 15.6,请确保:

    • 您正在使用 libstdc++6 12 或更高版本。
    • The Default_WM parameter in /etc/sysconfig/windowmanager is set to “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 驱动程序(来自您的云供应商或 NVIDIA)。

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

安装 Linux VDA 软件包后,您可以在 SQLite、PostgreSQL 和内置注册表服务之间切换。

  • 为此,请完成以下步骤:

    • 我们建议您仅在 VDI 模式下使用 SQLite,并在托管共享桌面交付模型中使用 PostgreSQL 或内置注册表服务。

    • 对于简易安装和 MCS,您可以指定使用 SQLite、PostgreSQL 或内置注册表服务,而无需手动安装它们。除非通过 /etc/xdl/db.conf 另行指定,否则 Linux VDA 默认使用内置注册表服务。如果您需要自定义版本的 PostgreSQL 而不是 Linux 发行版提供的版本,则必须手动安装指定版本,编辑 /etc/xdl/db.conf 以反映新版本,并在运行简易安装脚本 (ctxinstall.sh) 或 MCS 脚本 (deploymcs.sh) 之前启动 PostgreSQL 服务。

    • 您还可以使用 /etc/xdl/db.conf 文件来对 PostgreSQL 数据库的端口号进行设置。

    • 要在 RHEL9、RHEL10 和 Rocky9 上使用内置注册表服务,需要启用 CodeReady Builder 存储库:

    RHEL9: subscription-manager repos –enable codeready-builder-for-rhel-9-$(arch)-rpms RHEL10: subscription-manager repos –enable codeready-builder-for-rhel-10-$(arch)-rpms Rocky9: dnf config-manager –enable crb

  1. 运行 /opt/Citrix/VDA/sbin/ctxcleanup.sh。如果是全新安装,请跳过此步骤。

  2. 在运行 deploymcs.sh 之前编辑 /etc/xdl/db.conf。以下是 db.conf 文件的示例:

# database configuration file for Linux VDA



## database choice

# possible choices are:

#     SQLite

#     PostgreSQL

#     ctxregd - use the built-in registry service # default choice is ctxregd

DbType="ctxregd"



## database port

# specify database port for the database.

# if not specified, default port will be used:

# SQLite: N/A

# PostgreSQL: 5432

DbPort=5432



## PostgreSQL customized

# only the following value means true, otherwise false:

#     true

#     yes

#     y

#     YES

#     Y

# default is false

DbCustomizePostgreSQL=false



## PostgreSQL service name

# specify the service name of PostgreSQL for Linux VDA

# default is "postgresql"

DbPostgreSQLServiceName="postgresql"

<!--NeedCopy-->

安装 Linux VDA 软件包后,您可以通过编辑 /etc/xdl/db.conf 来指定使用 SQLite、PostgreSQL 或内置注册表服务。

To do so, edit /etc/xdl/db.conf before running sudo /opt/Citrix/VDA/sbin/ctxinstall.sh or /opt/Citrix/VDA/bin/easyinstall.

注意:

  • 我们建议您仅在 VDI 模式下使用 SQLite。

  • 对于轻松安装和 MCS,您可以指定使用 SQLite、PostgreSQL 或内置注册表服务,而无需手动安装它们。除非通过 /etc/xdl/db.conf 另行指定,否则 Linux VDA 默认使用内置注册表服务。

  • You can also use /etc/xdl/db.conf to configure the port number for PostgreSQL.

  • To use build-in registry service on RHEL9, RHEL10 and Rocky9, the CodeReady Builder repository is required to enable: RHEL9: subscription-manager repos –enable codeready-builder-for-rhel-9-$(arch)-rpms RHEL10: subscription-manager repos –enable codeready-builder-for-rhel-10-$(arch)-rpms Rocky9: dnf config-manager –enable crb

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

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

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

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

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

注意:

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

GUI

您可以通过 GUI 使用简易安装。在 VDA 的桌面环境中运行 /opt/Citrix/VDA/sbin/linux-vda-installer 命令,然后按照简易安装 GUI 上的说明进行操作。

简易安装

简易安装 GUI 将指导您完成以下操作:

  • 检查系统环境是否满足要求
  • 配置数据库
  • 安装依赖项
  • 配置VDA的运行时环境

注意:

用户还可以点击“高级配置(可选)”按钮,以展开详细的配置选项。

ctxinstall.sh

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

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

  • 简易安装使用 /opt/Citrix/VDA/sbin/ctxinstall.conf 作为其配置文件,用于设置、保存和同步所有使用的环境变量的值。我们建议您仔细阅读模板 (ctxinstall.conf.tmpl),然后自定义您自己的 ctxinstall.conf。首次创建配置文件时,请使用以下任一方法:
    • By copying the /opt/Citrix/VDA/sbin/ctxinstall.conf.tmpl template file and saving it as /opt/Citrix/VDA/sbin/ctxinstall.conf.
    • By running ctxinstall.sh. Each time you run ctxinstall.sh, your input is saved in /opt/Citrix/VDA/sbin/ctxinstall.conf.
  • 简易安装支持模块化运行。模块包括预检查、安装、域配置、设置和验证。

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

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

注意:

  • 遵循最小权限原则,确保只有 root 用户才能读取 /opt/Citrix/VDA/sbin/ctxinstall.conf,因为域加入密码可能在该文件中设置。
  • Uninstalling the Linux VDA removes files under /opt/Citrix/VDA. We recommend you back up /opt/Citrix/VDA/sbin/ctxinstall.conf before uninstalling the VDA.

您可以在交互模式或静默模式下运行 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’ – The Linux Virtual Desktop services are started after machine startup.

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

  • CTX_XDL_DESKTOP_ENVIRONMENT=gnome/gnome-classic/mate – Specifies the GNOME, GNOME Classic, or MATE desktop environment to use in sessions. If you leave the variable unspecified, the default desktop configured on the VDA is used.

  • 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>‘ – The path to install .NET for supporting the new broker agent service (ctxvda). The default path is ‘/usr/bin’.

  • CTX_XDL_VDA_PORT=’<port-number>‘ – The Linux VDA communicates with Delivery Controllers through a TCP/IP port.

交互模式

要在交互模式下运行 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|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 虚拟投递代理:

要启动 Linux 虚拟投递代理服务:

sudo systemctl start ctxhdx.service

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

停止 Linux 虚拟投递代理:

要停止 Linux 虚拟投递代理服务:

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 虚拟投递代理 的状态:

要检查 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 2503

步骤 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-->

对于本地部署,您需要直接在交付控制器上运行此命令。对于 Citrix DaaS 部署,您需要通过 Citrix Virtual Apps and Desktops Remote PowerShell SDK 来运行此命令。