使用 Machine Creation Services™ (MCS) 创建 Linux VM
要使用 MCS 创建 Linux 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 | |
|---|---|---|---|---|
| RHEL 8.3 | 是 | 否 | 否 | 否 |
| CentOS 8.3 | 是 | 否 | 否 | 否 |
| RHEL 8.2 | 是 | 否 | 否 | 否 |
| CentOS 8.2 | 是 | 否 | 否 | 否 |
| RHEL 8.1 | 是 | 否 | 否 | 否 |
| CentOS 8.1 | 是 | 否 | 否 | 否 |
| RHEL 7.9 | 是 | 是 | 否 | 否 |
| CentOS 7.9 | 是 | 是 | 否 | 否 |
| RHEL 7.8 | 是 | 是 | 否 | 否 |
| CentOS 7.8 | 是 | 是 | 否 | 否 |
| Ubuntu 20.04 | 是 | 是 | 否 | 否 |
| Ubuntu 18.04 | 是 | 是 | 否 | 否 |
| Ubuntu 16.04 | 是 | 是 | 否 | 否 |
| Debian 10.7 | 是 | 是 | 否 | 否 |
| SUSE 12.5 | 是 | 是 | 否 | 否 |
步骤 1a:安装 Citrix VM Tools
必须在模板 VM 上安装 Citrix VM Tools,以便每个 VM 都能使用 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 12:
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 Core Runtime 3.1。有关详细信息,请参阅安装概述。
根据您的 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 12:
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/CentOS 8、RHEL 7/CentOS 7 上安装 EPEL 存储库,以便稍后运行 deploymcs.sh 时安装其中包含的 ntfs-3g 软件包。
步骤 1f:在 SUSE 12 上手动安装 ntfs-3g
在 SUSE 12 平台上,没有提供 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 地址。 -
AD_INTEGRATION:设置 Winbind 或 SSSD。有关 MSC 支持的 Linux 发行版和域加入方法的矩阵,请参阅本文中的支持的发行版。 -
WORKGROUP:如果已在 AD 中配置,则设置工作组名称(区分大小写)。
-
-
在模板计算机上,根据需要将命令行添加到
/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。 -
(可选)在模板 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模板。注意:
请保留模板文件中使用的现有格式,并使用
$WORKGROUP、$REALM、$realm和$AD_FQDN等变量。 - 在 Citrix Hypervisor 上,关闭模板 VM。创建主映像的快照并为其命名。
步骤 2:创建计算机目录
在 Citrix Studio 中,创建计算机目录并指定要在目录中创建的 VM 数量。根据需要执行其他配置任务。有关详细信息,请参阅使用 Studio 创建计算机目录。
步骤 3:创建交付组
交付组是选自一个或多个计算机目录的计算机集合。交付组指定哪些用户可以使用这些计算机以及哪些应用程序和桌面可供这些用户使用。有关详细信息,请参阅创建交付组。
使用 MCS 在 Azure 上创建 Linux VM
步骤 1:在 Citrix Studio 中创建到 Azure 的主机连接
-
- 在 Citrix Cloud™ 上的 Citrix Studio 中,选择配置 > 托管 > 添加连接和资源以创建到 Azure 的连接。
-

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

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

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

步骤 2:在模板 VM 上准备主映像
主映像包含操作系统、非虚拟化应用程序、VDA 和其他软件。要准备主映像,请执行以下操作:
步骤 2a:为 Ubuntu 18.04 配置 cloud-init
为确保 VM 重新启动或停止时 VDA 主机名保持不变,请运行以下命令。
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 Core Runtime 3.1。有关详细信息,请参阅安装概述。
根据您的 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 12:
sudo zypper –i install <PATH>/<Linux VDA RPM>
<!--NeedCopy-->
步骤 2d:安装包含 ntfs-3g 的 EPEL 存储库
在 RHEL 8/CentOS 8、RHEL 7/CentOS 7 上安装 EPEL 存储库,以便稍后运行 deploymcs.sh 时安装其中包含的 ntfs-3g 软件包。
步骤 2e:在 SUSE 12 上手动安装 ntfs-3g
在 SUSE 12 平台上,没有提供 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 地址。
-
-
AD_INTEGRATION:设置 Winbind 或 SSSD(SUSE 不支持 SSSD)。 -
WORKGROUP:如果已在 AD 中配置,则设置工作组名称(区分大小写)。
-
-
在模板计算机上,根据需要将命令行添加到
/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。 -
(可选)在模板 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模板。注意: 保留模板文件中使用的现有格式,并使用
$WORKGROUP、$REALM、$realm和$AD_FQDN等变量。 -
在模板 VM 上安装应用程序,然后从 Azure 门户关闭模板 VM。确保模板 VM 的电源状态为已停止 (已解除分配)。请记住此处的资源组名称。您需要该名称才能在 Azure 上找到您的主映像。

步骤 3:创建计算机目录
- 在 Citrix Studio 中,创建计算机目录并指定要在目录中创建的 VM 数量。创建计算机目录时,从模板 VM 所属的资源组中选择您的主映像,然后找到模板 VM 的 VHD。
- 
根据需要执行其他配置任务。有关详细信息,请参阅使用 Studio 创建计算机目录。
步骤 4:创建交付组
交付组是从一个或多个计算机目录中选择的计算机的集合。交付组指定哪些用户可以使用这些计算机,以及哪些应用程序和桌面可供这些用户使用。有关详细信息,请参阅创建交付组。
使用 MCS 在 VMware vSphere 上创建 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 Core Runtime 3.1。有关详细信息,请参阅安装概述。
根据您的 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 12:
sudo zypper –i install <PATH>/<Linux VDA RPM>
<!--NeedCopy-->
步骤 2c: 安装包含 ntfs-3g 的 EPEL 存储库
在 RHEL 8/CentOS 8、RHEL 7/CentOS 7 上安装 EPEL 存储库,以便稍后运行 deploymcs.sh 时安装其中包含的 ntfs-3g 软件包。
步骤 2d: 在 SUSE 12 上手动安装 ntfs-3g
在 SUSE 12 平台上,没有提供 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-->
步骤 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 地址。 -
AD_INTEGRATION:设置 Winbind 或 SSSD(SUSE 不支持 SSSD)。 -
WORKGROUP:如果已在 AD 中配置,则设置工作组名称(区分大小写)。 - 在模板计算机上,将命令行添加到
/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。 -
(可选) 在模板 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 模板。
注意: 保留模板文件中使用的现有格式,并使用诸如 $WORKGROUP、$REALM、$realm 和 $AD_FQDN 等变量。
- 在模板 VM 上完成应用程序安装后,从 VMware 关闭模板 VM。创建模板 VM 的快照。
步骤 3: 创建计算机目录
在 Citrix Studio 中,创建计算机目录并指定要在目录中创建的 VM 数量。创建计算机目录时,请从快照列表中选择您的主映像。

- 根据需要执行其他配置任务。有关详细信息,请参阅使用 Studio 创建计算机目录。
步骤 4:创建交付组
- 交付组是选自一个或多个计算机目录的计算机集合。交付组指定哪些用户可以使用这些计算机,以及这些用户可用的应用程序和桌面。有关详细信息,请参阅[创建交付组](/zh-cn/citrix-virtual-apps-desktops/install-configure/delivery-groups-create.html)。
-
使用 MCS 在 AWS 上创建 Linux VM
步骤 1:在 Citrix Studio 中创建到 AWS 的托管连接
-
在 Citrix Cloud 上的 Citrix Studio 中,选择配置 > 托管 > 添加连接和资源以创建到 AWS 的连接。

-
选择 Amazon EC2 作为连接类型。

-
键入您的 AWS 账户的 API 密钥和秘密密钥,然后键入您的连接名称。

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

步骤 2:准备主映像
主映像包含操作系统、非虚拟化应用程序、VDA 和其他软件。要准备主映像,请执行以下操作:
步骤 2a:配置 cloud-init
-
为确保 EC2 实例重新启动或停止时 VDA 主机名保持不变,请运行以下命令以保留 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--> -
要使用 SSH 远程访问在 AWS 上创建的 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 Core Runtime 3.1。有关详细信息,请参阅安装概述。
根据您的 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 12:
sudo zypper –i install <PATH>/<Linux VDA RPM>
<!--NeedCopy-->
步骤 2d:安装包含 ntfs-3g 的 EPEL 存储库
在 RHEL 8/CentOS 8、RHEL 7/CentOS 7 上安装 EPEL 存储库,以便稍后运行 deploymcs.sh 时安装其中包含的 ntfs-3g 软件包。
步骤 2e:在 SUSE 12 上手动安装 ntfs-3g
在 SUSE 12 平台上,没有提供 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 地址。 -
AD_INTEGRATION:设置 Winbind 或 SSSD(SUSE 不支持 SSSD)。 -
WORKGROUP:如果已在 AD 中配置,则设置工作组名称(区分大小写)。
-
-
在模板计算机上,根据需要将命令行添加到
/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。 -
(可选)在模板 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模板。注意: 保留模板文件中使用的现有格式,并使用
$WORKGROUP、$REALM、$realm和$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 Core Runtime 3.1。有关详细信息,请参阅安装概述。
根据您的 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 12:
sudo zypper –i install <PATH>/<Linux VDA RPM>
<!--NeedCopy-->
步骤 3c:安装包含 ntfs-3g 的 EPEL 存储库
在 RHEL 8/CentOS 8、RHEL 7/CentOS 7 上安装 EPEL 存储库,以便稍后运行 deploymcs.sh 时安装其中包含的 ntfs-3g 软件包。
步骤 3d:在 SUSE 12 上手动安装 ntfs-3g
在 SUSE 12 平台上,没有提供 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-->
步骤 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 地址。 -
AD_INTEGRATION:设置 Winbind 或 SSSD(SUSE 不支持 SSSD)。 -
WORKGROUP:如果已在 AD 中配置,则设置工作组名称(区分大小写)。
-
-
在模板计算机上,根据需要将命令行添加到
/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。 -
(可选)在模板 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模板。注意:
保留模板文件中使用的现有格式,并使用
$WORKGROUP、$REALM、$realm和$AD_FQDN等变量。 - 在模板 VM 上完成应用程序安装后,从 VMware 关闭模板 VM。拍摄模板 VM 的快照。
步骤 4:创建计算机目录
在 Citrix Studio 中,创建计算机目录并指定要在目录中创建的 VM 数量。创建计算机目录时,从快照列表中选择您的主映像。

根据需要执行其他配置任务。有关详细信息,请参阅使用 Studio 创建计算机目录。
步骤 5:创建交付组
交付组是从一个或多个计算机目录中选择的计算机集合。交付组指定哪些用户可以使用这些计算机,以及这些用户可用的应用程序和桌面。有关详细信息,请参阅创建交付组。
使用 MCS 升级 Linux VDA
要使用 MCS 升级 Linux VDA,请执行以下操作:
-
确保在将 Linux VDA 升级到当前版本之前已安装 .NET Core Runtime 3.1。
-
在模板计算机上升级 Linux VDA:
适用于 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 12:
```
sudo rpm -U XenDesktopVDA-<version>.sle12_x.x86_64.rpm
<!--NeedCopy--> ```
适用于 Ubuntu 16.04:
```
sudo dpkg -i xendesktopvda_<version>.ubuntu16.04_amd64.deb
<!--NeedCopy--> ```
适用于 Ubuntu 18.04:
```
sudo dpkg -i xendesktopvda_<version>.ubuntu18.04_amd64.deb
<!--NeedCopy--> ```
适用于 Ubuntu 20.04:
```
sudo dpkg -i xendesktopvda_<version>.ubuntu20.04_amd64.deb
<!--NeedCopy--> ```
-
编辑
/etc/xdl/mcs/mcs.conf和/etc/xdl/mcs/mcs_local_setting.reg。 -
拍摄新快照。
-
在 Citrix Studio 中,选择新快照以更新您的 Machine Catalog。在每台计算机重新启动之前等待。请勿手动重新启动计算机。
自动更新计算机帐户密码
默认情况下,计算机帐户密码在创建计算机目录 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 | |
|---|---|---|---|
| RHEL 8, CentOS 8 | 是 | 否 | 否 |
| RHEL 7, CentOS 7 | 是 | 是 | 否 |
| Ubuntu 20.04 | 是 | 否 | 否 |
| Ubuntu 18.04 | 是 | 否 | 否 |
| Ubuntu 16.04 | 是 | 否 | 否 |
| Debian 10.7 | 是 | 否 | 否 |
| SUSE 12.5 | 是 | 否 | 否 |
在模板 VM 上准备主映像时启用 FAS
-
运行脚本
opt/Citrix/VDA/sbin/ctxinstall.sh并设置所有环境变量,例如 FAS 服务器列表。有关环境变量的详细信息,请参阅简易安装。sudo /opt/Citrix/VDA/sbin/ctxinstall.sh <!--NeedCopy--> -
导入根 CA 证书。
sudo cp root.pem /etc/pki/CA/certs/ <!--NeedCopy--> -
运行
ctxfascfg.sh。 - 在
/etc/xdl/mcs/mcs.conf中设置变量。- 将
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中设置变量。- 将
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脚本。
注意:
您必须在
/etc/xdl/mcs/mcs.conf中设置所有必要的变量,因为这些变量会在 VM 启动时被调用。