Linux Virtual Delivery Agent 2109

Linux VDA 自助更新

此功能有助于立即或在计划的时间自动更新 Linux VDA 软件。特别是当您在适用于 Azure 的 Citrix Virtual Apps and Desktops Standard 中创建 Linux VDA 时非常有用。您没有 Azure 中的 VM 的管理员权限。有关详细信息,请参阅在适用于 Azure 的 Citrix Virtual Apps and Desktops Standard 中创建 Linux VDA

配置

要使用此功能,请完成以下步骤:

步骤 1:将更新信息和新 VDA 包上载到 Azure 容器

步骤 1a:在 Azure 存储帐户下创建一个容器并将容器访问级别设置为 Blob (Anonymous read access for blobs only)(Blob (仅限 blob 的匿名读取访问权限))。

注意:

Azure 容器和 blob 专门由客户持有和管理。Citrix 对其任何安全问题不承担责任。为确保数据安全性和成本效率,请在每次自我更新后将容器访问级别设置为 Private (no anonymous access)(私有(无匿名访问权限))。

Step1b:将 VDA 更新信息合并到名为 UpdateInfo.json 的 JSON 文件中。有关文件格式的示例,请参阅以下块:

{
 "Version": "21.04.200.4",
"Distributions":[
{
"TargetOS": "RHEL7_9",
"PackageName": "",
"PackageHash": ""
},
{
"TargetOS": "RHEL8_3",
"PackageName": "XenDesktopVDA-21.04.200.4-1.el8_x.x86_64.rpm",
"PackageHash": "a6f2aba23b84bbc3a4640294a8bb92474e0cacbab1e5ae33416c0a4473a28d73"
},
{
"TargetOS": "UBUNTU16_04",
"PackageName": "",
"PackageHash": ""
},
{
"TargetOS": "UBUNTU18_04",
"PackageName": "xendesktopvda_21.04.200.4-1.ubuntu18.04_amd64.deb",
"PackageHash": "4148cc3f25d3717e3cbc19bd953b42c72bd38ee3fcd7f7034c2cd6f2b15b3c5a"
},
{
"TargetOS": "UBUNTU20_04",
"PackageName": "",
"PackageHash": ""
}
]
}
<!--NeedCopy-->

其中,“Version” 表示新的 VDA 版本,“Distributions” 是一组更新对象。每个对象包含三个项目:

  • “TargetOS”:必须是 “RHEL7_9”(适用于 RHEL 7 和 CentOS 7)、”RHEL8_3”、”UBUNTU16_04”、”UBUNTU18_04” 或 “UBUNTU20_04”。ctxmonitorservice 无法识别任何其他发行版。
  • “PackageName”:指定版本的 VDA 软件包的全名。
  • “PackageHash”:使用 shasum -a 256 <pkgname> 命令计算的 SHA-256 值。

Step1c:将 JSON 文件和 Linux VDA 软件包的新版本上载到您的 Azure 容器。

步骤 2: 在主映像或每个 VDA 上启用自助更新功能

默认情况下,自助更新处于禁用状态。如果在适用于 Azure 的 Citrix Virtual Apps and Desktops Standard 中创建 Linux VDA,必须在主映像上执行功能启用。否则,请直接在每个目标 VDA 上启用该功能。

要启用自助更新,请运行类似于以下内容的命令,以编辑 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\SelfUpdate 下的注册表项。

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

/opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\SelfUpdate" -t "REG_SZ" -v "ScheduledTime" -d "Immediately" –force

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

/opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\SelfUpdate" -t "REG_SZ" -v "CaCertificate" -d "<Local-Certificate-Path-of-PortalAzureCom>" --force
<!--NeedCopy-->

下表介绍了注册表设置。

注册表设置 说明
fEnabled 此设置为必填项。默认情况下,该值为 0,表示自助更新已禁用。可以将其设置为 1 以启用自助更新。
Url 此设置为必填项。它设置 Azure 容器的 URL 以获取更新信息和新的 VDA 软件包。
ScheduledTime 此设置为必填项。可以将其设置为 ImmediatelyNextStartImmediately 意味着下载 VDA 软件包后立即运行更新。当下载速度很高且您的更新非常紧急时,此选项适用。但是,如果下载软件包时有任何实时会话,则可能会中断用户体验。NextStart 意味着在下次启动 ctxmonitorservice 时执行更新。当下载速度不高且您的更新不紧急时,此选项适用。
CaCertificate 此设置为可选设置。它设置 PEM 证书的完整路径以验证 Azure 容器的 URL。对于 Azure blob,它可以是从浏览器中检索并转换为 PEM 的 portal.azure.com 的证书。为了安全起见,我们建议您添加此注册表设置,但仅在 Ubuntu 上受支持。在 RHEL 上,它没有链接 curl 命令的一些 NSS 库。确保设置证书的最低权限。

重新启动 ctxmonitorservice 时,它首先查询 Url 以获取 UpdateInfo.json 文件,然后从 JSON 文件中检索更新版本。然后 ctxmonitorservice 会将更新版本与当前版本进行比较。如果当前版本较早,该服务将从 Azure 下载新版本的 VDA 软件包并将其保存在本地。之后,它根据 ScheduledTime 的设置运行更新。对于本地部署,您可以直接重新启动 ctxmonitorservice 以触发更新。但是,在适用于 Azure 的 Citrix Virtual Apps and Desktops Standard 中,您对 VM 没有管理员权限,只能在重新启动 VDA 计算机后重新启动 ctxmonitorservice。如果更新失败,您的 VDA 将回滚到现有版本。

注意:

  • 无法更改在主映像上配置的注册表设置。
  • 如果环境中的所有 VM 同时下载软件包,本地网络可能会拥塞。
  • 如果更新和回滚都失败,用户数据将丢失。
  • 如果更新失败但回滚成功,同一网络中的用户可能拥有不同版本的 Linux VDA。这种情况不是最佳情况。
  • 更新通常需要几分钟时间才能完成。Citrix Studio 中没有状态指示器。
Linux VDA 自助更新