使用 Machine Creation Services™ (MCS) 创建 Linux VM
- Schritt
- Schritt
-
Schritt 使用 MCS 创建 Linux VM 涉及以下常规步骤:
- 在所选的模板 VM 上准备主映像,该模板 VM 可以是任何 VM 或当前正在运行的 VDA。
- 在 Citrix Studio 中创建计算机目录。
- 创建交付组。
注意:
如果您尝试在 Citrix Hypervisor™、Microsoft Azure、VMware vSphere、AWS、GCP 或 Nutanix AHV 以外的其他虚拟机管理程序上准备主映像,则可能会出现意外结果。
自 Citrix Virtual Apps and Desktops™ 7 2003 起,不支持 Microsoft Azure、AWS 和 GCP。但您可以继续在 Citrix Virtual Apps and Desktops 服务中使用主机。
支持的发行版
| Winbind | SSSD | Centrify | PBIS | |
|---|---|---|---|---|
| CentOS 7.9 | 是 | 是 | 是 | 是 |
| CentOS 7.8 | 是 | 是 | 是 | 是 |
| Debian 10.9 | 是 | 是 | 否 | 是 |
| RHEL 8.4 | 是 | 否 | 是 | 是 |
| RHEL 8.3 | 是 | 否 | 是 | 是 |
| RHEL 8.2 | 是 | 否 | 是 | 是 |
| RHEL 8.1 | 是 | 否 | 是 | 是 |
| RHEL 7.9 | 是 | 是 | 是 | 是 |
| RHEL 7.8 | 是 | 是 | 是 | 是 |
| SUSE 15.3 | 是 | 是 | 否 | 是 |
| SUSE 15.2 | 是 | 是 | 否 | 是 |
| SUSE 12.5 | 是 | 是 | 否 | 是 |
| Ubuntu 20.04 | 是 | 是 | 否 | 是 |
| Ubuntu 18.04 | 是 | 是 | 否 | 是 |
| Ubuntu 16.04 | 是 | 是 | 否 | 是 |
注意:
如果您使用 PBIS 或 Centrify 将 MCS 创建的计算机加入 Windows 域,请完成以下任务:
- 在模板计算机上,在
/etc/xdl/mcs/mcs.conf文件中配置 PBIS 或 Centrify 软件包下载路径,或者直接安装 PBIS 或 Centrify 软件包。在运行
/opt/Citrix/VDA/sbin/deploymcs.sh之前,创建一个组织单位 (OU),该组织单位对所有下属的 MCS 创建的计算机具有写入和密码重置权限。
- 在
/opt/Citrix/VDA/sbin/deploymcs.sh运行完成后重新启动 MCS 创建的计算机之前,根据您的部署,在您的 Delivery Controller 或 Citrix Cloud Connector 上运行klist -li 0x3e4 purge。
主映像包含操作系统、非虚拟化应用程序、VDA 和其他软件。要准备主映像,请执行以下操作:
步骤 1a:安装 Citrix VM Tools
在模板 VM 上为每个 VM 安装 Citrix VM Tools,以便使用 xe CLI 或 XenCenter。如果不安装这些工具,VM 性能可能会很慢。如果没有这些工具,您将无法执行以下任何操作:
- 干净地关闭、重新启动或暂停 VM。
- 在 XenCenter 中查看 VM 性能数据。
- 迁移正在运行的 VM(通过
XenMotion)。 - 创建快照或带内存的快照(检查点),并还原到快照。
- 调整正在运行的 Linux VM 上的 vCPU 数量。
-
运行以下命令以装载名为 guest-tools.iso 的 Citrix VM Tools。
sudo mount /dev/cdrom /mnt <!--NeedCopy--> -
根据您的 Linux 发行版,运行以下命令以安装
xe-guest-utilities软件包。对于 RHEL/CentOS:
sudo rpm -i /mnt/Linux/xe-guest-utilities_{package-version}_all.rpm <!--NeedCopy-->对于 Ubuntu/Debian:
sudo dpkg -i /mnt/Linux/xe-guest-utilities_{package-version}_all.deb <!--NeedCopy-->对于 SUSE:
sudo rpm -i /mnt/Linux/xe-guest-utilities_{package-version}_all.rpm <!--NeedCopy--> -
在 XenCenter 的“常规”选项卡上检查模板 VM 的虚拟化状态。如果 Citrix VM Tools 已正确安装,则虚拟化状态为“已优化”:

步骤 1b:(仅适用于 Ubuntu 16.04)安装 OpenJDK 11
在 Ubuntu 16.04 上,通过完成以下步骤安装 OpenJDK 11:
- 从 https://jdk.java.net/archive/ 下载最新的 OpenJDK 11。
- 运行
tar zxf openjdk-11.0.2_linux-x64_bin.tar.gz命令以解压缩下载的软件包。 - (可选)运行
mv jdk-11.0.2/ <target directory>命令以将 OpenJDK 保存到目标目录。 - 运行
update-alternatives -----install /usr/bin/java java <custom directory>/bin/java 2000命令以设置 Java 运行时。 - 运行
java -version命令以验证 Java 版本。
步骤 1c:在模板 VM 上安装 Linux VDA 软件包
注意:
要使用当前正在运行的 VDA 作为模板 VM,请跳过此步骤。
在模板 VM 上安装 Linux VDA 软件包之前,请安装 .NET Runtime 6.0。
根据您的 Linux 发行版,运行以下命令以设置 Linux VDA 的环境:
对于 RHEL/CentOS:
sudo yum –y localinstall <PATH>/<Linux VDA RPM>
<!--NeedCopy-->
对于 Ubuntu/Debian:
sudo dpkg –i <PATH>/<Linux VDA DEB>
apt-get install -f
<!--NeedCopy-->
对于 SUSE:
sudo zypper –i install <PATH>/<Linux VDA RPM>
<!--NeedCopy-->
- #### 步骤 1d:启用存储库以安装 `tdb-tools` 软件包
- **对于 RHEL 7 服务器:**
- subscription-manager repos --enable=rhel-7-server-optional-rpms
<!--NeedCopy-->
- **对于 RHEL 7 工作站:**
subscription-manager repos --enable=rhel-7-workstation-optional-rpms
<!--NeedCopy-->
步骤 1e:安装可提供 ntfs-3g 的 EPEL 存储库
在 RHEL 8、RHEL 7 和 CentOS 7 上安装 EPEL 存储库,以便稍后运行 deploymcs.sh 时安装 EPEL 存储库中提供的 ntfs-3g 软件包。
步骤 1f:在 SUSE 上手动安装 ntfs-3g
在 SUSE 平台上,没有存储库提供 ntfs-3g。请手动下载源代码、编译并安装 ntfs-3g:
-
安装 GNU Compiler Collection (GCC) 编译器系统和 make 软件包:
sudo zypper install gcc - sudo zypper install make <!--NeedCopy--> -
下载 ntfs-3g 软件包。
-
解压缩 ntfs-3g 软件包:
sudo tar -xvzf ntfs-3g_ntfsprogs-<package version>.tgz <!--NeedCopy--> -
输入 ntfs-3g 软件包的路径:
sudo cd ntfs-3g_ntfsprogs-<package version> <!--NeedCopy--> -
安装 ntfs-3g:
./configure make make install <!--NeedCopy-->
步骤 1g:设置运行时环境
运行 deploymcs.sh 之前,请执行以下操作:
- 更改 `/etc/xdl/mcs/mcs.conf` 中的变量。`mcs.conf` 配置文件提供了用于设置 MCS 和 Linux VDA 的变量。以下是您可以根据需要设置的变量:
- `Use_Existing_Configurations_Of_Current_VDA`:确定是否使用当前运行的 VDA 的现有配置。如果设置为 Y,则在 MCS 创建的计算机上的配置文件与当前运行的 VDA 上的相应文件相同。但是,您仍然必须配置 `dns` 和 `AD_INTEGRATION` 变量。默认值为 N,这意味着主映像上的配置模板决定了 MCS 创建的计算机上的配置文件。
- `dns`:设置每个 DNS 服务器的 IP 地址。您最多可以设置四个 DNS 服务器。
- `NTP_SERVER`:设置 NTP 服务器的 IP 地址。除非另有说明,否则它是域控制器的 IP 地址。
- `WORKGROUP`:设置工作组名称,如果已在 AD 中配置,则为 NetBIOS 名称(区分大小写)。否则,默认情况下为域名。
- `AD_INTEGRATION`:设置 Winbind、SSSD、PBIS 或 Centrify。有关 MCS 支持的 Linux 发行版和域加入方法的矩阵,请参阅本文中的[支持的发行版](#supported-distributions)。
- `CENTRIFY_DOWNLOAD_PATH`:设置下载 Centrify 软件包的路径。仅当您将 `AD_INTEGRATION` 变量设置为 Centrify 时,此值才生效。
- `CENTRIFY_SAMBA_DOWNLOAD_PATH`:设置下载 Centrify Samba 软件包的路径。仅当您将 `AD_INTEGRATION` 变量设置为 Centrify 时,此值才生效。
- `PBIS_DOWNLOAD_PATH`:设置下载 PBIS 软件包的路径。仅当您将 `AD_INTEGRATION` 变量设置为 PBIS 时,此值才生效。
- `UPDATE_MACHINE_PW`:启用或禁用自动化计算机帐户密码更新。有关详细信息,请参阅[自动化计算机帐户密码更新](/zh-cn/linux-virtual-delivery-agent/2201/installation-overview/use-mcs-to-create-linux-vms.html#automate-machine-account-password-updates)。
- 以下 Linux VDA 配置变量:
`DOTNET_RUNTIME_PATH`=path-to-install-dotnet-runtime \\
`DESKTOP_ENVIRONMENT`= gnome | mate \\
`SUPPORT_DDC_AS_CNAME`=Y | N
`VDA_PORT`=port-number
`REGISTER_SERVICE`=Y | N
`ADD_FIREWALL_RULES`=Y | N
`HDX_3D_PRO`=Y | N
`VDI_MODE`=Y | N
`SITE_NAME`=dns-site-name | '<none\>'
`LDAP_LIST`='list-ldap-servers' | '<none\>'
`SEARCH_BASE`=search-base-set | '<none\>'
`FAS_LIST`='list-fas-servers' | '<none\>'
`START_SERVICE`=Y | N
`TELEMETRY_SOCKET_PORT`=port-number
`TELEMETRY_PORT`=port-number
有关 `mcs.conf` 的示例,请参阅以下屏幕截图:

- 在模板计算机上,根据需要将命令行添加到 `/etc/xdl/mcs/mcs_local_setting.reg` 文件中,以写入或更新注册表值。此操作可防止每次 MCS 预配的计算机重新启动时数据和设置丢失。
`/etc/xdl/mcs/mcs_local_setting.reg` 文件中的每一行都是用于设置或更新注册表值的命令。
例如,您可以将以下命令行添加到 `/etc/xdl/mcs/mcs_local_setting.reg` 文件中,以分别写入或更新注册表值:
```
create -k "HKLM\System\CurrentControlSet\Control\Citrix\VirtualChannels\Clipboard\ClipboardSelection" -t "REG_DWORD" -v "Flags" -d "0x00000003" --force
<!--NeedCopy--> ```
```
update -k "HKLM\System\CurrentControlSet\Control\Citrix\VirtualChannels\Clipboard\ClipboardSelection" -v "Flags" -d "0x00000003"
<!--NeedCopy--> ```
步骤 1h:创建主映像
- 运行
/opt/Citrix/VDA/sbin/deploymcs.sh。 -
(如果您正在使用当前运行的 VDA 作为模板 VM,请跳过此步骤。)在模板 VM 上,更新配置模板以自定义所有已创建 VM 上的相关
/etc/krb5.conf、/etc/samba/smb.conf和/etc/sssd/sssd.conf文件。对于 Winbind 用户,请更新
/etc/xdl/mcs/winbind_krb5.conf.tmpl和/etc/xdl/mcs/winbind_smb.conf.tmpl模板。对于 SSSD 用户,请更新
/etc/xdl/mcs/sssd.conf.tmpl、/etc/xdl/mcs/sssd_krb5.conf.tmpl和/etc/xdl/mcs/sssd_smb.conf.tmpl模板。对于 Centrify 用户,请更新
/etc/xdl/mcs/centrify_krb5.conf.tmpl和/etc/xdl/mcs/centrify_smb.conf.tmpl模板。注意:
请保留模板文件中使用的现有格式,并使用
$WORKGROUP、$REALM、$realm、${new_hostname}和$AD_FQDN等变量。 - 在 Citrix Hypervisor 上,关闭模板 VM。创建并命名主映像的快照。
步骤 2:创建计算机目录
- 在 Citrix Studio 中,创建计算机目录并指定要在目录中创建的 VM 数量。根据需要执行其他配置任务。有关详细信息,请参阅[使用 Studio 创建计算机目录](/zh-cn/citrix-virtual-apps-desktops/install-configure/machine-catalogs-create.html)。
步骤 3:创建交付组
- 交付组是从一个或多个计算机目录中选择的计算机集合。它指定哪些用户可以使用这些计算机,以及这些用户可用的应用程序和桌面。有关详细信息,请参阅[创建交付组](/zh-cn/citrix-virtual-apps-desktops/install-configure/delivery-groups-create.html)。
使用 MCS 在 Azure 上创建 Linux VM
步骤 1:在 Citrix Studio 中创建到 Azure 的托管连接
-
在 Citrix Studio on Citrix Cloud™ 中,选择配置 > 托管 > 添加连接和资源以创建与 Azure 的连接。

-
选择 Microsoft Azure 作为连接类型。

-
键入 Azure 帐户的订阅 ID 和连接名称。

托管窗格中将显示一个新连接。
步骤 2:在模板 VM 上准备黄金映像
黄金映像包含操作系统、非虚拟化应用程序、VDA 和其他软件。要准备黄金映像,请执行以下操作:
步骤 2a:为 Ubuntu 18.04 配置 cloud-init
为确保 VDA 主机名在 VM 重新启动或停止时保持不变,请运行以下命令:
echo "preserve_hostname: true" > /etc/cloud/cloud.cfg.d/99_hostname.cfg
<!--NeedCopy-->
验证 /etc/cloud/cloud.cfg 文件中 system_info 部分下是否存在以下行:
system_info:
network:
renderers: ['netplan', 'eni', 'sysconfig']
<!--NeedCopy-->
步骤 2b:(仅适用于 Ubuntu 16.04)安装 OpenJDK 11
在 Ubuntu 16.04 上,通过完成以下步骤安装 OpenJDK 11:
- 从 https://jdk.java.net/archive/ 下载最新的 OpenJDK 11。
- 运行
tar zxf openjdk-11.0.2_linux-x64_bin.tar.gz命令以解压缩下载的软件包。 - (可选)运行
mv jdk-11.0.2/ <target directory>命令以将 OpenJDK 保存到目标目录中。 - 运行
update-alternatives --install /usr/bin/java java <custom directory>/bin/java 2000命令以设置 Java 运行时。 - 运行
java -version命令以验证 Java 版本。
步骤 2c:在模板 VM 上安装 Linux VDA 软件包
注意:
要使用当前正在运行的 VDA 作为模板 VM,请跳过此步骤。
在模板 VM 上安装 Linux VDA 软件包之前,请安装 .NET Runtime 6.0。
根据您的 Linux 发行版,运行以下命令来设置 Linux VDA 的环境:
对于 RHEL/CentOS:
sudo yum –y localinstall <PATH>/<Linux VDA RPM>
<!--NeedCopy-->
对于 Ubuntu/Debian:
sudo dpkg –i <PATH>/<Linux VDA DEB>
apt-get install -f
<!--NeedCopy-->
对于 SUSE:
sudo zypper –i install <PATH>/<Linux VDA RPM>
<!--NeedCopy-->
步骤 2d:安装可提供 ntfs-3g 的 EPEL 存储库
在 RHEL 8/CentOS 8、RHEL 7/CentOS 7 上安装 EPEL 存储库,以便稍后运行 deploymcs.sh 时安装 EPEL 存储库中提供的 ntfs-3g 软件包。
步骤 2e:在 SUSE 上手动安装 ntfs-3g
在 SUSE 平台上,没有存储库提供 ntfs-3g。请手动下载源代码、编译并安装 ntfs-3g:
-
安装 GNU 编译器集合 (GCC) 编译器系统和 make 软件包:
sudo zypper install gcc sudo zypper install make <!--NeedCopy--> -
下载 ntfs-3g 软件包。
-
解压缩 ntfs-3g 软件包:
sudo tar -xvzf ntfs-3g_ntfsprogs-<package version>.tgz <!--NeedCopy--> -
输入 ntfs-3g 软件包的路径:
sudo cd ntfs-3g_ntfsprogs-<package version> <!--NeedCopy--> -
安装 ntfs-3g:
- ./configure - make - make install <!--NeedCopy-->
步骤 2f:设置运行时环境
- 运行 `deploymcs.sh` 之前,请执行以下操作:
- 更改 `/etc/xdl/mcs/mcs.conf` 中的变量。`mcs.conf` 配置文件提供了用于设置 MCS 和 Linux VDA 的变量。以下是一些变量,其中 `dns` 和 `AD_INTEGRATION` 必须设置:
**注意:**如果变量可以设置为多个值,请将这些值放在单引号中并用空格分隔。例如,LDAP_LIST='aaa.lab:389 bbb.lab:389.'
- `Use_Existing_Configurations_Of_Current_VDA`:确定是否使用当前运行的 VDA 的现有配置。如果设置为 Y,则 MCS 创建的计算机上的配置文件与当前运行的 VDA 上的等效文件相同。但是,仍必须配置 `dns` 和 `AD_INTEGRATION` 变量。默认值为 N,这意味着主映像上的配置模板决定了 MCS 创建的计算机上的配置文件。
- `dns`:设置每个 DNS 服务器的 IP 地址。最多可以设置四个 DNS 服务器。
- `NTP_SERVER`:设置 NTP 服务器的 IP 地址。除非另有说明,否则它是域控制器的 IP 地址。
- `WORKGROUP`:设置工作组名称,如果已在 AD 中配置,则为 NetBIOS 名称(区分大小写)。否则,默认情况下为域名。
- `AD_INTEGRATION`:设置 Winbind、SSSD、PBIS 或 Centrify。有关 MSC 支持的 Linux 发行版和域加入方法的矩阵,请参阅本文中的[支持的发行版](#supported-distributions)。
- `CENTRIFY_DOWNLOAD_PATH`:设置下载 Centrify 软件包的路径。此值仅在将 `AD_INTEGRATION` 变量设置为 Centrify 时生效。
- `CENTRIFY_SAMBA_DOWNLOAD_PATH`:设置下载 Centrify Samba 软件包的路径。此值仅在将 `AD_INTEGRATION` 变量设置为 Centrify 时生效。
- `PBIS_DOWNLOAD_PATH`:设置下载 PBIS 软件包的路径。此值仅在将 `AD_INTEGRATION` 变量设置为 PBIS 时生效。
- `UPDATE_MACHINE_PW`:启用或禁用自动更新计算机帐户密码。有关详细信息,请参阅[自动更新计算机帐户密码](/zh-cn/linux-virtual-delivery-agent/2201/installation-overview/use-mcs-to-create-linux-vms.html#automate-machine-account-password-updates)。
- 以下 Linux VDA 配置变量:
`DOTNET_RUNTIME_PATH`=path-to-install-dotnet-runtime \\
`DESKTOP_ENVIRONMENT`= gnome | mate \\
`SUPPORT_DDC_AS_CNAME`=Y | N
`VDA_PORT`=port-number
`REGISTER_SERVICE`=Y | N
`ADD_FIREWALL_RULES`=Y | N
`HDX_3D_PRO`=Y | N
`VDI_MODE`=Y | N
`SITE_NAME`=dns-site-name | '<none\>'
`LDAP_LIST`='list-ldap-servers' | '<none\>'
`SEARCH_BASE`=search-base-set | '<none\>'
`FAS_LIST`='list-fas-servers' | '<none\>'
`START_SERVICE`=Y | N
`TELEMETRY_SOCKET_PORT`=port-number
`TELEMETRY_PORT`=port-number
有关 `mcs.conf` 的示例,请参阅以下屏幕截图:

- 在模板计算机上,根据需要将命令行添加到 `/etc/xdl/mcs/mcs_local_setting.reg` 文件中,以写入或更新注册表值。此操作可防止 MCS 预配的计算机每次重新启动时丢失数据和设置。
`/etc/xdl/mcs/mcs_local_setting.reg` 文件中的每一行都是用于设置或更新注册表值的命令。
例如,可以将以下命令行添加到 `/etc/xdl/mcs/mcs_local_setting.reg` 文件中,以分别写入或更新注册表值:
```
create -k "HKLM\System\CurrentControlSet\Control\Citrix\VirtualChannels\Clipboard\ClipboardSelection" -t "REG_DWORD" -v "Flags" -d "0x00000003" --force
<!--NeedCopy--> ```
```
update -k "HKLM\System\CurrentControlSet\Control\Citrix\VirtualChannels\Clipboard\ClipboardSelection" -v "Flags" -d "0x00000003"
<!--NeedCopy--> ```
步骤 2g:创建主映像
- 运行
/opt/Citrix/VDA/sbin/deploymcs.sh。 -
(如果使用当前运行的 VDA 作为模板 VM,请跳过此步骤。)在模板 VM 上,更新配置模板以自定义所有创建的 VM 上的相关
/etc/krb5.conf、/etc/samba/smb.conf和/etc/sssd/sssd.conf文件。对于 Winbind 用户,请更新
/etc/xdl/mcs/winbind_krb5.conf.tmpl和/etc/xdl/mcs/winbind_smb.conf.tmpl模板。对于 SSSD 用户,请更新
/etc/xdl/mcs/sssd.conf.tmpl、/etc/xdl/mcs/sssd_krb5.conf.tmpl和/etc/xdl/mcs/sssd_smb.conf.tmpl模板。对于 Centrify 用户,请更新
/etc/xdl/mcs/centrify_krb5.conf.tmpl和/etc/xdl/mcs/centrify_smb.conf.tmpl模板。注意: 保留模板文件中使用的现有格式,并使用
$WORKGROUP、$REALM、$realm、${new_hostname}和$AD_FQDN等变量。 -
在模板 VM 上安装应用程序,然后从 Azure 门户关闭模板 VM。确保模板 VM 的电源状态为已停止(已解除分配)。请记住此处的资源组名称。需要此名称才能在 Azure 上找到主映像。
- 
步骤 3:创建计算机目录
在 Citrix Studio 中,创建计算机目录并指定要在目录中创建的 VM 数量。创建计算机目录时,从模板 VM 所属的资源组中选择主映像,然后找到模板 VM 的 VHD。

根据需要执行其他配置任务。有关详细信息,请参阅使用 Studio 创建计算机目录。
步骤 4:创建交付组
交付组是从一个或多个计算机目录中选择的计算机集合。它指定哪些用户可以使用这些计算机,以及哪些应用程序和桌面可供这些用户使用。有关详细信息,请参阅创建交付组。
在 VMware vSphere 上使用 MCS 创建 Linux VM
步骤 1:在 Citrix Studio 中创建到 VMware 的主机连接
-
在 vSphere 环境中安装 vCenter Server。有关详细信息,请参阅 VMware vSphere。
-
在 Citrix Studio 中,选择“配置”>“主机”>“添加连接和资源”以创建到 VMware vSphere 的连接。

-
选择 VMware vSphere 作为连接类型。

-
键入 VMware 帐户的连接地址(vCenter Server URL)、用户名和密码以及连接名称。

主机连接窗格中将显示一个新连接。

步骤 2:准备主映像
主映像包含操作系统、非虚拟化应用程序、VDA 和其他软件。要准备主映像,请执行以下操作:
步骤 2a:(仅适用于 Ubuntu 16.04) 安装 OpenJDK 11
在 Ubuntu 16.04 上,通过完成以下步骤安装 OpenJDK 11:
- 从 https://jdk.java.net/archive/ 下载最新的 OpenJDK 11。
- 运行
tar zxf openjdk-11.0.2_linux-x64_bin.tar.gz命令以解压缩下载的软件包。 - (可选)运行
mv jdk-11.0.2/ <target directory>命令以将 OpenJDK 保存到目标目录。 - 运行
update-alternatives --install /usr/bin/java java <custom directory>/bin/java 2000命令以设置 Java 运行时。 - 运行
java -version命令以验证 Java 版本。
步骤 2b:在模板 VM 上安装 Linux VDA 软件包
注意:
要使用当前运行的 VDA 作为模板 VM,请跳过此步骤。
在模板 VM 上安装 Linux VDA 软件包之前,请安装 .NET Runtime 6.0。
根据您的 Linux 发行版,运行以下命令以设置 Linux VDA 的环境:
对于 RHEL/CentOS:
- sudo yum –y localinstall <PATH>/<Linux VDA RPM>
<!--NeedCopy-->
- **对于 Ubuntu/Debian:**
- sudo dpkg –i <PATH>/<Linux VDA DEB>
- apt-get install -f
<!--NeedCopy-->
对于 SUSE:
sudo zypper –i install <PATH>/<Linux VDA RPM>
<!--NeedCopy-->
步骤 2c:安装可提供 ntfs-3g 的 EPEL 存储库
在 RHEL 8/CentOS 8、RHEL 7/CentOS 7 上安装 EPEL 存储库,以便稍后运行 deploymcs.sh 时安装 EPEL 存储库中提供的 ntfs-3g 软件包。
步骤 2d:在 SUSE 上手动安装 ntfs-3g
在 SUSE 平台上,没有存储库提供 ntfs-3g。手动下载源代码、编译并安装 ntfs-3g:
-
安装 GNU 编译器集合 (GCC) 编译器系统和 make 软件包:
sudo zypper install gcc sudo zypper install make <!--NeedCopy--> -
下载 ntfs-3g 软件包。
-
解压缩 ntfs-3g 软件包:
sudo tar -xvzf ntfs-3g_ntfsprogs-<package version>.tgz <!--NeedCopy--> -
输入 ntfs-3g 软件包的路径:
sudo cd ntfs-3g_ntfsprogs-<package version> <!--NeedCopy--> -
安装 ntfs-3g:
./configure make make install <!--NeedCopy-->
步骤 2e:设置运行时环境
在运行 deploymcs.sh 之前,请执行以下操作:
- 更改 `/etc/xdl/mcs/mcs.conf` 中的变量。`mcs.conf` 配置文件提供了用于设置 MCS 和 Linux VDA 的变量。以下是一些变量,其中 `dns` 和 `AD_INTEGRATION` 必须设置:
**注意:** 如果一个变量可以设置多个值,请将这些值放在单引号内并用空格分隔。例如,LDAP_LIST='aaa.lab:389 bbb.lab:389.'
- `Use_Existing_Configurations_Of_Current_VDA`:确定是否使用当前运行的 VDA 的现有配置。如果设置为 Y,则 MCS 创建的计算机上的配置文件与当前运行的 VDA 上的等效文件相同。但是,您仍然必须配置 `dns` 和 `AD_INTEGRATION` 变量。默认值为 N,这意味着主映像上的配置模板决定了 MCS 创建的计算机上的配置文件。
- `dns`:设置每个 DNS 服务器的 IP 地址。最多可以设置四个 DNS 服务器。
- `NTP_SERVER`:设置 NTP 服务器的 IP 地址。除非另有说明,否则它是域控制器的 IP 地址。
- `WORKGROUP`:设置工作组名称,如果已在 AD 中配置,则为 NetBIOS 名称(区分大小写)。否则,默认情况下为域名。
- `AD_INTEGRATION`:设置 Winbind、SSSD、PBIS 或 Centrify。有关 MSC 支持的 Linux 发行版和域加入方法的矩阵,请参阅本文中的[支持的发行版](#supported-distributions)。
- `CENTRIFY_DOWNLOAD_PATH`:设置下载 Centrify 软件包的路径。仅当将 `AD_INTEGRATION` 变量设置为 Centrify 时,此值才生效。
- `CENTRIFY_SAMBA_DOWNLOAD_PATH`:设置下载 Centrify Samba 软件包的路径。仅当将 `AD_INTEGRATION` 变量设置为 Centrify 时,此值才生效。
- `PBIS_DOWNLOAD_PATH`:设置下载 PBIS 软件包的路径。仅当将 `AD_INTEGRATION` 变量设置为 PBIS 时,此值才生效。
- `UPDATE_MACHINE_PW`:启用或禁用自动更新计算机帐户密码。有关详细信息,请参阅[自动更新计算机帐户密码](/zh-cn/linux-virtual-delivery-agent/2201/installation-overview/use-mcs-to-create-linux-vms.html#automate-machine-account-password-updates)。
- 以下 Linux VDA 配置变量:
`DOTNET_RUNTIME_PATH`=path-to-install-dotnet-runtime \\
`DESKTOP_ENVIRONMENT`= gnome | mate \\
`SUPPORT_DDC_AS_CNAME`=Y | N
`VDA_PORT`=port-number
`REGISTER_SERVICE`=Y | N
`ADD_FIREWALL_RULES`=Y | N
`HDX_3D_PRO`=Y | N
`VDI_MODE`=Y | N
`SITE_NAME`=dns-site-name | '<none\>'
`LDAP_LIST`='list-ldap-servers' | '<none\>'
`SEARCH_BASE`=search-base-set | '<none\>'
`FAS_LIST`='list-fas-servers' | '<none\>'
`START_SERVICE`=Y | N
`TELEMETRY_SOCKET_PORT`=port-number
`TELEMETRY_PORT`=port-number
有关 `mcs.conf` 的示例,请参阅以下屏幕截图:

- 在模板计算机上,将命令行添加到 `/etc/xdl/mcs/mcs_local_setting.reg` 文件,以根据需要写入或更新注册表值。此操作可防止每次 MCS 预配的计算机重新启动时数据和设置丢失。
`/etc/xdl/mcs/mcs_local_setting.reg` 文件中的每一行都是用于设置或更新注册表值的命令。
例如,您可以将以下命令行添加到 /etc/xdl/mcs/mcs_local_setting.reg 文件中,以分别写入或更新注册表值:
```
create -k "HKLM\System\CurrentControlSet\Control\Citrix\VirtualChannels\Clipboard\ClipboardSelection" -t "REG_DWORD" -v "Flags" -d "0x00000003" --force
<!--NeedCopy--> ```
```
update -k "HKLM\System\CurrentControlSet\Control\Citrix\VirtualChannels\Clipboard\ClipboardSelection" -v "Flags" -d "0x00000003"
<!--NeedCopy--> ```
步骤 2f: 创建主映像
- 运行
/opt/Citrix/VDA/sbin/deploymcs.sh。 -
(如果您正在使用当前运行的 VDA 作为模板 VM,请跳过此步骤。)在模板 VM 上,更新配置模板以自定义所有创建的 VM 上的相关 /etc/krb5.conf、/etc/samba/smb.conf 和 /etc/sssd/sssd.conf 文件。
对于 Winbind 用户,请更新
/etc/xdl/mcs/winbind_krb5.conf.tmpl和/etc/xdl/mcs/winbind_smb.conf.tmpl模板。-
对于 SSSD 用户,请更新
/etc/xdl/mcs/sssd.conf.tmpl、/etc/xdl/mcs/sssd_krb5.conf.tmpl和/etc/xdl/mcs/sssd_smb.conf.tmpl模板。 -
对于 Centrify 用户,请更新
/etc/xdl/mcs/centrify_krb5.conf.tmpl和/etc/xdl/mcs/centrify_smb.conf.tmpl模板。 -
注意: 保留模板文件中使用的现有格式,并使用诸如 $WORKGROUP、$REALM、$realm、${new_hostname} 和 $AD_FQDN 等变量。
-
- 在模板 VM 上完成应用程序安装后,从 VMware 关闭模板 VM。创建模板 VM 的快照。
-
步骤 3: 创建计算机目录
在 Citrix Studio 中,创建计算机目录并指定要在目录中创建的 VM 数量。创建计算机目录时,从快照列表中选择主映像。

根据需要执行其他配置任务。有关详细信息,请参阅使用 Studio 创建计算机目录。
步骤 4: 创建交付组
交付组是从一个或多个计算机目录中选择的计算机集合。它指定哪些用户可以使用这些计算机,以及这些用户可用的应用程序和桌面。有关详细信息,请参阅创建交付组。
在 AWS 上使用 MCS 创建 Linux VM
步骤 1: 在 Citrix Studio 中创建到 AWS 的托管连接
- 在 Citrix Cloud 上的 Citrix Studio 中,选择配置 > 托管 > 添加连接和资源以创建到 AWS 的连接。
-
选择 Amazon EC2 作为连接类型。

-
键入您的 AWS 帐户的 API 密钥和秘密密钥,并键入您的连接名称。

API 密钥是您的访问密钥 ID,而秘密密钥是您的秘密访问密钥。它们被视为访问密钥对。如果您丢失了秘密访问密钥,可以删除该访问密钥并创建另一个。要创建访问密钥,请执行以下操作:
- 登录到 AWS 服务。
- 导航到 Identity and Access Management (IAM) 控制台。
- 在左侧导航窗格中,选择用户。
- 选择目标用户,并向下滚动以选择安全凭证选项卡。
- 向下滚动并单击创建访问密钥。将出现一个新窗口。
- 单击下载 .csv 文件,并将访问密钥保存到安全位置。
托管窗格中将显示一个新连接。

步骤 2: 准备主映像
主映像包含操作系统、非虚拟化应用程序、VDA 和其他软件。要准备主映像,请执行以下操作:
步骤 2a: 配置 cloud-init
-
为确保 VDA 主机名在 EC2 实例重新启动或停止时保持不变,请运行以下命令以保留 VDA 主机名。
echo "preserve_hostname: true" > /etc/cloud/cloud.cfg.d/99_hostname.cfg <!--NeedCopy-->
-
对于 Ubuntu 18.04,请确保以下行存在于 /etc/cloud/cloud.cfg 文件中的 system_info 部分下:
system_info: network: renderers: ['netplan', 'eni', 'sysconfig'] <!--NeedCopy-->
-
要在 AWS 上使用 SSH 远程访问 MCS 创建的 VM,请启用密码身份验证,因为这些 VM 未附加密钥名称。根据需要执行以下操作。
-
编辑
cloud-init配置文件 /etc/cloud/cloud.cfg。确保存在 ssh_pwauth: true 行。如果存在 set-password 行和以下行,请将其删除或注释掉。users: - default <!--NeedCopy--> - 如果您计划使用
cloud-init创建的默认用户ec2-user或ubuntu,您可以使用passwd命令更改用户密码。请记住新密码,以便以后登录到 MCS 创建的 VM。 -
编辑
/etc/ssh/sshd_config文件以确保存在以下行:PasswordAuthentication yes <!--NeedCopy-->保存文件并运行
sudo service sshd restart命令。
-
步骤 2b: (仅适用于 Ubuntu 16.04)安装 OpenJDK 11
在 Ubuntu 16.04 上,通过完成以下步骤安装 OpenJDK 11:
- 从 https://jdk.java.net/archive/ 下载最新的 OpenJDK 11。
- 运行
tar zxf openjdk-11.0.2_linux-x64_bin.tar.gz命令以解压缩下载的软件包。 - (可选)运行
mv jdk-11.0.2/ <target directory>命令以将 OpenJDK 保存到目标目录。 - 运行
update-alternatives --install /usr/bin/java java <custom directory>/bin/java 2000命令以设置 Java 运行时。 - 运行
java -version命令以验证 Java 版本。
步骤 2c:在模板 VM 上安装 Linux VDA 软件包
注意:
如果要使用当前正在运行的 VDA 作为模板 VM,请跳过此步骤。
在模板 VM 上安装 Linux VDA 软件包之前,请安装 .NET Runtime 6.0。
根据您的 Linux 发行版,运行以下命令以设置 Linux VDA 的环境:
对于 RHEL/CentOS:
sudo yum –y localinstall <PATH>/<Linux VDA RPM>
<!--NeedCopy-->
对于 Ubuntu/Debian:
sudo dpkg –i <PATH>/<Linux VDA DEB>
apt-get install -f
<!--NeedCopy-->
对于 SUSE:
- sudo zypper –i install <PATH>/<Linux VDA RPM>
<!--NeedCopy-->
- #### 步骤 2d:安装可提供 ntfs-3g 的 EPEL 存储库
- 在 RHEL 8/CentOS 8、RHEL 7/CentOS 7 上安装 EPEL 存储库,以便稍后运行 `deploymcs.sh` 时安装 EPEL 存储库中提供的 ntfs-3g 软件包。
- #### 步骤 2e:在 SUSE 上手动安装 ntfs-3g
- 在 SUSE 平台上,没有存储库提供 ntfs-3g。请手动下载源代码、编译并安装 ntfs-3g:
-
安装 GNU Compiler Collection (GCC) 编译器系统和 make 软件包:
sudo zypper install gcc sudo zypper install make <!--NeedCopy--> -
下载 ntfs-3g 软件包。
-
解压缩 ntfs-3g 软件包:
sudo tar -xvzf ntfs-3g_ntfsprogs-<package version>.tgz <!--NeedCopy--> -
输入 ntfs-3g 软件包的路径:
sudo cd ntfs-3g_ntfsprogs-<package version> <!--NeedCopy--> -
安装 ntfs-3g:
./configure make make install <!--NeedCopy-->
步骤 2f:设置运行时环境
在运行 deploymcs.sh 之前,请执行以下操作:
- 更改 `/etc/xdl/mcs/mcs.conf` 中的变量。`mcs.conf` 配置文件提供了用于设置 MCS 和 Linux VDA 的变量。以下是一些变量,其中 `dns` 和 `AD_INTEGRATION` 必须设置:
**注意:** 如果变量可以设置为多个值,请将这些值放在单引号内并用空格分隔。例如,LDAP_LIST='aaa.lab:389 bbb.lab:389。'
- `Use_Existing_Configurations_Of_Current_VDA`:确定是否使用当前正在运行的 VDA 的现有配置。如果设置为 Y,则 MCS 创建的计算机上的配置文件与当前正在运行的 VDA 上的等效文件相同。但是,您仍然必须配置 `dns` 和 `AD_INTEGRATION` 变量。默认值为 N,这意味着主映像上的配置模板决定了 MCS 创建的计算机上的配置文件。
- `dns`:设置每个 DNS 服务器的 IP 地址。最多可以设置四个 DNS 服务器。
- `NTP_SERVER`:设置 NTP 服务器的 IP 地址。除非另有说明,否则它是域控制器的 IP 地址。
- `WORKGROUP`:设置工作组名称,如果已在 AD 中配置,则为 NetBIOS 名称(区分大小写)。否则,默认情况下为域名。
- `AD_INTEGRATION`:设置 Winbind、SSSD、PBIS 或 Centrify。有关 MSC 支持的 Linux 发行版和域加入方法的矩阵,请参阅本文中的[支持的发行版](#supported-distributions)。
- `CENTRIFY_DOWNLOAD_PATH`:设置下载 Centrify 软件包的路径。此值仅在将 `AD_INTEGRATION` 变量设置为 Centrify 时生效。
- `CENTRIFY_SAMBA_DOWNLOAD_PATH`:设置下载 Centrify Samba 软件包的路径。此值仅在将 `AD_INTEGRATION` 变量设置为 Centrify 时生效。
- `PBIS_DOWNLOAD_PATH`:设置下载 PBIS 软件包的路径。此值仅在将 `AD_INTEGRATION` 变量设置为 PBIS 时生效。
- `UPDATE_MACHINE_PW`:启用或禁用自动更新计算机帐户密码。有关详细信息,请参阅[自动更新计算机帐户密码](/zh-cn/linux-virtual-delivery-agent/2201/installation-overview/use-mcs-to-create-linux-vms.html#automate-machine-account-password-updates)。
- 以下 Linux VDA 配置变量:
`DOTNET_RUNTIME_PATH`=dotnet 运行时安装路径 \\
`DESKTOP_ENVIRONMENT`= gnome | mate \\
`SUPPORT_DDC_AS_CNAME`=Y | N
`VDA_PORT`=端口号
`REGISTER_SERVICE`=Y | N
`ADD_FIREWALL_RULES`=Y | N
`HDX_3D_PRO`=Y | N
`VDI_MODE`=Y | N
`SITE_NAME`=dns 站点名称 | '<none\>'
`LDAP_LIST`='ldap 服务器列表' | '<none\>'
`SEARCH_BASE`=搜索基本集 | '<none\>'
`FAS_LIST`='fas 服务器列表' | '<none\>'
`START_SERVICE`=Y | N
`TELEMETRY_SOCKET_PORT`=端口号
`TELEMETRY_PORT`=端口号
有关 `mcs.conf` 的示例,请参阅以下屏幕截图:

-
在模板计算机上,根据需要将命令行添加到
/etc/xdl/mcs/mcs_local_setting.reg文件中,以写入或更新注册表值。此操作可防止 MCS 预配的计算机每次重新启动时丢失数据和设置。/etc/xdl/mcs/mcs_local_setting.reg文件中的每一行都是用于设置或更新注册表值的命令。例如,您可以将以下命令行添加到
/etc/xdl/mcs/mcs_local_setting.reg文件中,以分别写入或更新注册表值:create -k "HKLM\System\CurrentControlSet\Control\Citrix\VirtualChannels\Clipboard\ClipboardSelection" -t "REG_DWORD" -v "Flags" -d "0x00000003" --force <!--NeedCopy-->update -k "HKLM\System\CurrentControlSet\Control\Citrix\VirtualChannels\Clipboard\ClipboardSelection" -v "Flags" -d "0x00000003" <!--NeedCopy-->
步骤 2g:创建主映像
- 运行
/opt/Citrix/VDA/sbin/deploymcs.sh。 -
(如果您正在使用当前运行的 VDA 作为模板 VM,请跳过此步骤。)在模板 VM 上,更新配置模板以自定义所有已创建 VM 上的相关
/etc/krb5.conf、/etc/samba/smb.conf和/etc/sssd/sssd.conf文件。对于 Winbind 用户,请更新
/etc/xdl/mcs/winbind_krb5.conf.tmpl和/etc/xdl/mcs/winbind_smb.conf.tmpl模板。对于 SSSD 用户,请更新
/etc/xdl/mcs/sssd.conf.tmpl、/etc/xdl/mcs/sssd_krb5.conf.tmpl和/etc/xdl/mcs/sssd_smb.conf.tmpl模板。对于 Centrify 用户,请更新
/etc/xdl/mcs/centrify_krb5.conf.tmpl和/etc/xdl/mcs/centrify_smb.conf.tmpl模板。注意:请保留模板文件中使用的现有格式,并使用
$WORKGROUP、$REALM、$realm、${new_hostname}和$AD_FQDN等变量。 -
在模板 VM 上安装应用程序,然后从 AWS EC2 门户关闭模板 VM。确保模板 VM 的实例状态为已停止。
-
右键单击模板 VM,然后选择映像 > 创建映像。根据需要键入信息并进行设置。单击创建映像。

步骤 3:创建计算机目录
在 Citrix Studio 中,创建计算机目录并指定要在目录中创建的 VM 数量。创建计算机目录时,请选择您的计算机模板(您之前创建的主映像)并选择一个或多个安全组。


根据需要执行其他配置任务。有关详细信息,请参阅使用 Studio 创建计算机目录。
步骤 4:创建交付组
交付组是从一个或多个计算机目录中选择的计算机的集合。它指定哪些用户可以使用这些计算机,以及这些用户可用的应用程序和桌面。有关详细信息,请参阅创建交付组。
使用 MCS 在 GCP 上创建 Linux VM
步骤 1:设置 GCP 环境
有关详细信息,请参阅 Google Cloud Platform 虚拟化环境。
步骤 2:在 Citrix Studio 中创建到 GCP 的托管连接
-
在 Citrix Cloud 上的 Citrix Studio 中,选择配置 > 托管 > 添加连接和资源以创建到 GCP 的连接。

-
选择 Google Cloud Platform 作为连接类型。

-
导入您的 GCP 帐户的服务帐户密钥并键入您的连接名称。

托管窗格中将显示一个新连接。

步骤 3:准备主映像
主映像包含操作系统、非虚拟化应用程序、VDA 和其他软件。要准备主映像,请执行以下操作:
步骤 3a:(仅适用于 Ubuntu 16.04)安装 OpenJDK 11
在 Ubuntu 16.04 上,通过完成以下步骤安装 OpenJDK 11:
- 从 https://jdk.java.net/archive/ 下载最新的 OpenJDK 11。
- 运行
tar zxf openjdk-11.0.2_linux-x64_bin.tar.gz命令以解压缩下载的软件包。 - (可选)运行
mv jdk-11.0.2/ <target directory>命令以将 OpenJDK 保存到目标目录中。 - 运行
update-alternatives --install /usr/bin/java java <custom directory>/bin/java 2000命令以设置 Java 运行时。 - 运行
java -version命令以验证 Java 版本。
步骤 3b:在模板 VM 上安装 Linux VDA 软件包
注意:
要使用当前运行的 VDA 作为模板 VM,请跳过此步骤。
在模板 VM 上安装 Linux VDA 软件包之前,请安装 .NET Runtime 6.0。
根据您的 Linux 发行版,运行以下命令来设置 Linux VDA 的环境:
对于 RHEL/CentOS:
sudo yum –y localinstall <PATH>/<Linux VDA RPM>
<!--NeedCopy-->
对于 Ubuntu/Debian:
sudo dpkg –i <PATH>/<Linux VDA DEB>
apt-get install -f
<!--NeedCopy-->
对于 SUSE:
sudo zypper –i install <PATH>/<Linux VDA RPM>
<!--NeedCopy-->
步骤 3c:安装可提供 ntfs-3g 的 EPEL 存储库
在 RHEL 8/CentOS 8、RHEL 7/CentOS 7 上安装 EPEL 存储库,以便稍后运行 deploymcs.sh 时可以安装 EPEL 存储库中提供的 ntfs-3g 软件包。
步骤 3d:在 SUSE 上手动安装 ntfs-3g
在 SUSE 平台上,没有存储库提供 ntfs-3g。请手动下载源代码、编译并安装 ntfs-3g:
-
安装 GNU 编译器集合 (GCC) 编译器系统和 make 软件包:
sudo zypper install gcc sudo zypper install make <!--NeedCopy--> -
下载 ntfs-3g 软件包。
-
解压缩 ntfs-3g 软件包:
sudo tar -xvzf ntfs-3g_ntfsprogs-<package version>.tgz <!--NeedCopy--> -
输入 ntfs-3g 软件包的路径:
sudo cd ntfs-3g_ntfsprogs-<package version> <!--NeedCopy--> -
安装 ntfs-3g:
./configure make make install <!--NeedCopy-->
步骤 3e:设置运行时环境
运行 deploymcs.sh 之前,请执行以下操作:
-
更改
/etc/xdl/mcs/mcs.conf中的变量。mcs.conf配置文件提供了用于设置 MCS 和 Linux VDA 的变量。以下是一些变量,其中必须设置dns和AD_INTEGRATION:注意: 如果一个变量可以设置多个值,请将这些值放在单引号内并用空格分隔。例如,LDAP_LIST=’aaa.lab:389 bbb.lab:389’。
-
Use_Existing_Configurations_Of_Current_VDA:确定是否使用当前运行的 VDA 的现有配置。如果设置为 Y,则 MCS 创建的计算机上的配置文件与当前运行的 VDA 上的等效文件相同。但是,您仍然必须配置dns和AD_INTEGRATION变量。默认值为 N,这意味着主映像上的配置模板决定了 MCS 创建的计算机上的配置文件。 -
dns:设置每个 DNS 服务器的 IP 地址。您最多可以设置四个 DNS 服务器。 -
NTP_SERVER:设置 NTP 服务器的 IP 地址。除非另有说明,否则它是您的域控制器的 IP 地址。 -
WORKGROUP:设置工作组名称,如果已在 AD 中配置,则为 NetBIOS 名称(区分大小写)。否则,默认情况下为域名。 -
AD_INTEGRATION:设置 Winbind、SSSD、PBIS 或 Centrify。有关 MSC 支持的 Linux 发行版和域加入方法的矩阵,请参阅本文中的支持的发行版。 -
CENTRIFY_DOWNLOAD_PATH:设置下载 Centrify 软件包的路径。此值仅在您将AD_INTEGRATION变量设置为 Centrify 时生效。 -
CENTRIFY_SAMBA_DOWNLOAD_PATH:设置下载 Centrify Samba 软件包的路径。此值仅在您将AD_INTEGRATION变量设置为 Centrify 时生效。 -
PBIS_DOWNLOAD_PATH:设置下载 PBIS 软件包的路径。此值仅在您将AD_INTEGRATION变量设置为 PBIS 时生效。 -
UPDATE_MACHINE_PW:启用或禁用自动更新计算机帐户密码。有关详细信息,请参阅自动更新计算机帐户密码。 -
以下 Linux VDA 配置变量:
DOTNET_RUNTIME_PATH=path-to-install-dotnet-runtime
DESKTOP_ENVIRONMENT= gnome | mate
SUPPORT_DDC_AS_CNAME=Y | NVDA_PORT=port-numberREGISTER_SERVICE=Y | NADD_FIREWALL_RULES=Y | NHDX_3D_PRO=Y | NVDI_MODE=Y | NSITE_NAME=dns-site-name | ‘<无>’LDAP_LIST=’list-ldap-servers’ | ‘<无>’SEARCH_BASE=search-base-set | ‘<无>’FAS_LIST=’list-fas-servers’ | ‘<无>’START_SERVICE=Y | NTELEMETRY_SOCKET_PORT=port-numberTELEMETRY_PORT=port-number
有关
mcs.conf的示例,请参阅以下屏幕截图:
-
-
在模板计算机上,根据需要将命令行添加到
/etc/xdl/mcs/mcs_local_setting.reg文件中,以写入或更新注册表值。此操作可防止 MCS 预配的计算机每次重新启动时丢失数据和设置。/etc/xdl/mcs/mcs_local_setting.reg文件中的每一行都是用于设置或更新注册表值的命令。例如,您可以将以下命令行添加到
/etc/xdl/mcs/mcs_local_setting.reg文件中,以分别写入或更新注册表值:create -k "HKLM\System\CurrentControlSet\Control\Citrix\VirtualChannels\Clipboard\ClipboardSelection" -t "REG_DWORD" -v "Flags" -d "0x00000003" --force <!--NeedCopy-->update -k "HKLM\System\CurrentControlSet\Control\Citrix\VirtualChannels\Clipboard\ClipboardSelection" -v "Flags" -d "0x00000003" <!--NeedCopy-->
步骤 3f:创建主映像
- 运行
/opt/Citrix/VDA/sbin/deploymcs.sh。 -
(如果您正在使用当前运行的 VDA 作为模板 VM,请跳过此步骤。)在模板 VM 上,更新配置模板以自定义所有创建的 VM 上的相关
/etc/krb5.conf、/etc/samba/smb.conf和/etc/sssd/sssd.conf文件。对于 Winbind 用户,请更新
/etc/xdl/mcs/winbind_krb5.conf.tmpl和/etc/xdl/mcs/winbind_smb.conf.tmpl模板。对于 SSSD 用户,请更新
/etc/xdl/mcs/sssd.conf.tmpl、/etc/xdl/mcs/sssd_krb5.conf.tmpl和/etc/xdl/mcs/sssd_smb.conf.tmpl模板。对于 Centrify 用户,请更新
/etc/xdl/mcs/centrify_krb5.conf.tmpl和/etc/xdl/mcs/centrify_smb.conf.tmpl模板。注意:
请保留模板文件中使用的现有格式,并使用诸如 $WORKGROUP、$REALM、$realm、${new_hostname} 和 $AD_FQDN 等变量。
- 在模板 VM 上完成应用程序安装后,从 VMware 关闭模板 VM。对模板 VM 创建快照。
步骤 4:创建计算机目录
在 Citrix Studio 中,创建计算机目录并指定要在目录中创建的 VM 数量。创建计算机目录时,请从快照列表中选择您的主映像。

根据需要执行其他配置任务。有关详细信息,请参阅使用 Studio 创建计算机目录。
步骤 5:创建交付组
交付组是选自一个或多个计算机目录的计算机集合。它指定哪些用户可以使用这些计算机,以及这些用户可用的应用程序和桌面。有关详细信息,请参阅创建交付组。
在 Nutanix AHV 上使用 MCS 创建 Linux VM
步骤 1:安装并注册 Nutanix AHV 插件
从 Nutanix 获取 Nutanix AHV 插件包。在您的 Citrix Virtual Apps and Desktops 环境中安装并注册该插件。有关详细信息,请参阅 Nutanix Acropolis MCS 插件安装指南,该指南可在 Nutanix 支持门户上获取。
步骤 1a:为本地 Delivery Controller 安装并注册 Nutanix AHV 插件
安装 Citrix Virtual Apps™ and Desktops 后,在您的 Delivery Controller 上选择并安装 XD MCS AHV Plugin。

步骤 1b:为云 Delivery Controller 安装并注册 Nutanix AHV 插件
安装 Citrix Virtual Apps and Desktops 后,为 Citrix Cloud Connector 选择并安装 CWA MCS AHV Plugin。在所有已向 Citrix Cloud 租户注册的 Citrix Cloud Connector 上安装该插件。即使 Citrix Cloud Connector 服务于没有 AHV 的资源位置,也必须注册它们。
步骤 1c:安装插件后完成以下步骤
- 验证是否已在
C:\Program Files\Common Files\Citrix\HCLPlugins\CitrixMachineCreation\v1.0.0.0中创建了 Nutanix Acropolis 文件夹。 - 运行
"C:\Program Files\Common Files\Citrix\HCLPlugins\RegisterPlugins.exe" -PluginsRoot "C:\Program Files\Common Files\Citrix\HCLPlugins\CitrixMachineCreation\v1.0.0.0"命令。 -
在您的本地 Delivery Controller 上重新启动 Citrix Host、Citrix Broker 和 Citrix Machine Creation Services,或者在 Citrix Cloud Connector 上重新启动 Citrix RemoteHCLServer Service。
提示:
我们建议您在安装或更新 Nutanix AHV 插件时,停止然后重新启动 Citrix Host、Citrix Broker 和 Machine Creation Services。
步骤 2:在 Citrix Studio 中创建到 Nutanix 的主机连接
- 对于本地 Delivery Controller,请在本地 Citrix Studio 中选择配置 > 托管 > 添加连接和资源。对于云 Delivery Controller,请在 Citrix Cloud 上的基于 Web 的 Studio 控制台中选择管理 > 托管 > 添加连接和资源,以创建到 Nutanix 虚拟机管理程序的连接。
-
在添加连接和资源向导中,在连接页面上选择 Nutanix AHV 作为连接类型,然后指定虚拟机管理程序地址、凭据和连接名称。在网络页面上,为托管单元选择一个网络。
例如,在本地 Citrix Studio 中:

例如,在 Citrix Cloud 上的基于 Web 的 Studio 控制台中:

- 在网络页面上,为托管单元选择一个网络。
步骤 3:在模板 VM 上准备主映像
主映像包含操作系统、非虚拟化应用程序、VDA 和其他软件。要准备主映像,请完成以下步骤:
步骤 3a:在模板 VM 上安装 Linux VDA 软件包
注意:
要使用当前正在运行的 VDA 作为模板 VM,请跳过此步骤。
在模板 VM 上安装 Linux VDA 软件包之前,请安装 .NET Runtime 6.0。
根据您的 Linux 发行版,运行以下命令为 Linux VDA 设置环境:
对于 RHEL/CentOS:
sudo yum –y localinstall <PATH>/<Linux VDA RPM>
<!--NeedCopy-->
对于 Ubuntu/Debian:
sudo dpkg –i <PATH>/<Linux VDA DEB>
apt-get install -f
<!--NeedCopy-->
对于 SUSE:
sudo zypper –i install <PATH>/<Linux VDA RPM>
<!--NeedCopy-->
步骤 3b:安装可提供 ntfs-3g 的 EPEL 存储库
在 RHEL 8/CentOS 8、RHEL 7/CentOS 7 上安装 EPEL 存储库,以便稍后运行 deploymcs.sh 时安装 EPEL 存储库中提供的 ntfs-3g 软件包。
步骤 3c:在 SUSE 上手动安装 ntfs-3g
在 SUSE 平台上,没有存储库提供 ntfs-3g。手动下载源代码、编译并安装 ntfs-3g:
-
安装 GNU Compiler Collection (GCC) 编译器系统和 make 软件包:
sudo zypper install gcc sudo zypper install make <!--NeedCopy--> -
下载 ntfs-3g 软件包。
-
解压缩 ntfs-3g 软件包:
sudo tar -xvzf ntfs-3g_ntfsprogs-<package version>.tgz <!--NeedCopy--> -
输入 ntfs-3g 软件包的路径:
sudo cd ntfs-3g_ntfsprogs-<package version> <!--NeedCopy--> -
安装 ntfs-3g:
./configure make make install <!--NeedCopy-->
步骤 3d: 设置运行时环境
在运行 deploymcs.sh 之前,请执行以下操作:
-
更改
/etc/xdl/mcs/mcs.conf中的变量。mcs.conf配置文件提供了用于设置 MCS 和 Linux VDA 的变量。以下是一些变量,其中必须设置dns和AD_INTEGRATION:注意: 如果变量可以设置为多个值,请将这些值放在单引号内并用空格分隔。例如,
LDAP_LIST='aaa.lab:389 bbb.lab:389.'-
Use_Existing_Configurations_Of_Current_VDA:确定是否使用当前运行的 VDA 的现有配置。如果设置为 Y,则在 MCS 创建的计算机上的配置文件与当前运行的 VDA 上的等效文件相同。但是,您仍然必须配置dns和AD_INTEGRATION变量。默认值为 N,这意味着主映像上的配置模板决定了 MCS 创建的计算机上的配置文件。 -
dns:设置每个 DNS 服务器的 IP 地址。您最多可以设置四个 DNS 服务器。 -
NTP_SERVER:设置 NTP 服务器的 IP 地址。除非另有说明,否则它是域控制器的 IP 地址。 -
WORKGROUP:设置工作组名称,如果已在 AD 中配置,则为 NetBIOS 名称(区分大小写)。否则,默认情况下为域名。 -
AD_INTEGRATION:设置 Winbind、SSSD、PBIS 或 Centrify。有关 MSC 支持的 Linux 发行版和域加入方法的矩阵,请参阅本文中的支持的发行版。 -
CENTRIFY_DOWNLOAD_PATH:设置下载 Centrify 软件包的路径。仅当您将AD_INTEGRATION变量设置为 Centrify 时,此值才生效。 -
CENTRIFY_SAMBA_DOWNLOAD_PATH:设置下载 Centrify Samba 软件包的路径。仅当您将AD_INTEGRATION变量设置为 Centrify 时,此值才生效。 -
PBIS_DOWNLOAD_PATH:设置下载 PBIS 软件包的路径。仅当您将AD_INTEGRATION变量设置为 PBIS 时,此值才生效。 -
UPDATE_MACHINE_PW:启用或禁用自动更新计算机帐户密码。有关详细信息,请参阅自动更新计算机帐户密码。 -
以下 Linux VDA 配置变量:
DOTNET_RUNTIME_PATH=path-to-install-dotnet-runtime
DESKTOP_ENVIRONMENT= gnome | mate
SUPPORT_DDC_AS_CNAME=Y | NVDA_PORT=port-numberREGISTER_SERVICE=Y | NADD_FIREWALL_RULES=Y | NHDX_3D_PRO=Y | NVDI_MODE=Y | NSITE_NAME=dns-site-name | ‘<none>’LDAP_LIST=’list-ldap-servers’ | ‘<none>’SEARCH_BASE=search-base-set | ‘<none>’FAS_LIST=’list-fas-servers’ | ‘<none>’START_SERVICE=Y | NTELEMETRY_SOCKET_PORT=port-numberTELEMETRY_PORT=port-number
有关
mcs.conf的示例,请参阅以下屏幕截图:
-
-
在模板计算机上,根据需要将命令行添加到
/etc/xdl/mcs/mcs_local_setting.reg文件中,以写入或更新注册表值。此操作可防止每次 MCS 预配的计算机重新启动时数据和设置丢失。/etc/xdl/mcs/mcs_local_setting.reg文件中的每一行都是用于设置或更新注册表值的命令。例如,您可以将以下命令行添加到
/etc/xdl/mcs/mcs_local_setting.reg文件中,以分别写入或更新注册表值:create -k "HKLM\System\CurrentControlSet\Control\Citrix\VirtualChannels\Clipboard\ClipboardSelection" -t "REG_DWORD" -v "Flags" -d "0x00000003" --force <!--NeedCopy-->update -k "HKLM\System\CurrentControlSet\Control\Citrix\VirtualChannels\Clipboard\ClipboardSelection" -v "Flags" -d "0x00000003" <!--NeedCopy-->
步骤 3e: 在 Nutanix AHV 上,关闭模板 VM。创建并命名主映像的快照
注意:
您必须为 Acropolis 快照名称添加
XD_前缀,以便在 Citrix Virtual Apps and Desktops 中使用。必要时,使用 Acropolis 控制台重命名快照。重命名快照后,重新启动“创建目录”向导以获取刷新后的列表。
步骤 4: 创建计算机目录
在 Citrix Studio 中,创建计算机目录并指定要在目录中创建的 VM 数量。在 Nutanix 特有的“容器”页面上,选择您之前为模板 VM 指定的容器。在“主映像”页面上,选择映像快照。在“虚拟机”页面上,检查虚拟 CPU 数量和每个 vCPU 的核心数量。
根据需要执行其他配置任务。有关详细信息,请参阅使用 Studio 创建计算机目录。
注意:
如果您的 Delivery Controller™ 上的计算机目录创建过程花费了大量时间,请转到 Nutanix Prism 并手动打开前缀为“Preparation”的计算机电源。此方法有助于继续创建过程。
步骤 5: 创建交付组
交付组是从一个或多个计算机目录中选择的计算机集合。交付组指定哪些用户可以使用这些计算机以及哪些应用程序和桌面可供这些用户使用。有关详细信息,请参阅创建交付组。
使用 MCS 更新 Linux VDA
要使用 MCS 更新 Linux VDA,请执行以下操作:
-
确保在将 Linux VDA 更新到当前版本之前已安装 .NET Runtime 6.0。
-
在模板计算机上更新 Linux VDA:
注意:
您还可以使用 Linux VDA 自更新功能来安排自动软件更新。为此,请将命令行添加到模板计算机上的
etc/xdl/mcs/mcs_local_setting.reg文件中。例如,您可以添加以下命令行: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 <!--NeedCopy-->对于 RHEL 7 和 CentOS 7:
sudo rpm -U XenDesktopVDA-<version>.el7_x.x86_64.rpm <!--NeedCopy-->对于 RHEL 8 和 CentOS 8:
sudo rpm -U XenDesktopVDA-<version>.el8_x.x86_64.rpm <!--NeedCopy-->对于 SUSE:
sudo rpm -U XenDesktopVDA-<version>.sle12_x.x86_64.rpm <!--NeedCopy-->对于 Ubuntu 16.04:
sudo dpkg -i xendesktopvda_20.12.0.20-1.ubuntu16.04_amd64.deb <!--NeedCopy-->对于 Ubuntu 18.04:
sudo dpkg -i xendesktopvda_20.12.0.20-1.ubuntu18.04_amd64.deb <!--NeedCopy-->对于 Ubuntu 20.04:
sudo dpkg -i xendesktopvda_20.12.0.20-1.ubuntu20.04_amd64.deb <!--NeedCopy--> -
编辑
/etc/xdl/mcs/mcs.conf和/etc/xdl/mcs/mcs_local_setting.reg。 -
拍摄新快照。
-
在 Citrix Studio 中,选择新快照以更新计算机目录。等待每台计算机重新启动。请勿手动重新启动计算机。
自动更新计算机帐户密码
默认情况下,计算机帐户密码在计算机目录创建 30 天后过期。为防止密码过期并自动更新计算机帐户密码,请执行以下操作:
-
在运行 /opt/Citrix/VDA/sbin/deploymcs.sh 之前,将以下条目添加到 /etc/xdl/mcs/mcs.conf 中。
UPDATE_MACHINE_PW="enabled" -
运行 /opt/Citrix/VDA/sbin/deploymcs.sh 后,打开 /etc/cron.d/mcs_update_password_cronjob 以设置更新时间和频率。默认设置是每周日凌晨 2:30 更新计算机帐户密码。
每次更新计算机帐户密码后,Delivery Controller 上的票证缓存将失效,并且 /var/log/xdl/jproxy.log 中可能会出现以下错误:
[ERROR] - AgentKerberosServiceAction.Run: GSSException occurred. Error: Failure unspecified at GSS-API level (Mechanism level: Checksum failed)
要消除此错误,请定期清除票证缓存。您可以在所有 Delivery Controller 或域控制器上安排缓存清理任务。
在 MCS 创建的 VM 上启用 FAS
您可以在运行以下发行版的 MCS 创建的 VM 上启用 FAS:
| Winbind | SSSD | Centrify | PBIS | |
|---|---|---|---|---|
| RHEL 8, CentOS 8 | 是 | 否 | 否 | 是 |
| RHEL 7, CentOS 7 | 是 | 是 | 否 | 是 |
| Ubuntu 20.04 | 是 | 否 | 否 | 否 |
| Ubuntu 18.04 | 是 | 否 | 否 | 否 |
| Ubuntu 16.04 | 是 | 否 | 否 | 否 |
| Debian 10.9 | 是 | 否 | 否 | 否 |
| SUSE 15.3 | 是 | 否 | 否 | 否 |
| SUSE 15.2 | 是 | 否 | 否 | 否 |
| SUSE 12.5 | 是 | 否 | 否 | 否 |
在模板 VM 上准备主映像时启用 FAS
-
导入根 CA 证书。
sudo cp root.pem /etc/pki/CA/certs/ <!--NeedCopy--> -
运行 ctxfascfg.sh。有关详细信息,请参阅运行 ctxfascfg.sh。
-
在
/etc/xdl/mcs/mcs.conf中设置变量。注意:
您必须在
/etc/xdl/mcs/mcs.conf中设置所有必需的变量,因为这些变量在 VM 启动时会被调用。- 将
Use_Existing_Configurations_Of_Current_VDA的值设置为 Y。 - 将
FAS_LIST变量设置为您的 FAS 服务器地址,或者用分号分隔并用双引号括起来的多个 FAS 服务器地址,例如FAS_LIST="<FAS_SERVER_FQDN>;<FAS_SERVER_FQDN>"。 - 根据需要设置其他变量,例如
VDI_MODE。
- 将
-
运行脚本
/opt/Citrix/VDA/sbin/deploymcs.sh。
在 MCS 创建的 VM 上启用 FAS
如果未按前述方式在模板计算机上启用 FAS,则可以在每个 MCS 创建的 VM 上启用 FAS。
要在 MCS 创建的 VM 上启用 FAS,请执行以下操作:
-
在 /etc/xdl/mcs/mcs.conf 中设置变量。
注意:
您必须在
/etc/xdl/mcs/mcs.conf中设置所有必需的变量,因为这些变量在 VM 启动时会被调用。- 将
Use_Existing_Configurations_Of_Current_VDA的值设置为 Y。 - 将
FAS_LIST变量设置为您的 FAS 服务器地址。 - 根据需要设置其他变量,例如
VDI_MODE。
- 将
-
导入根 CA 证书。
sudo cp root.pem /etc/pki/CA/certs/ <!--NeedCopy--> -
运行脚本
/opt/Citrix/VDA/sbin/ctxfascfg.sh。有关详细信息,请参阅运行 ctxfascfg.sh。

