使用 Machine Creation Services™ (MCS) 创建 Linux VM
要使用 MCS 创建 Linux VM,请在您的管理程序上准备一个主映像。此过程包括在模板 VM 上安装 VDA、在 Citrix Studio 中创建计算机目录、创建交付组以及执行某些配置任务。
注意:
如果尝试在 Citrix Hypervisor™、Microsoft Azure、VMware vSphere、AWS、GCP 或 Nutanix AHV 之外的管理程序上准备主映像,可能会出现意外结果。
Microsoft Azure、AWS 和 GCP 自 Citrix Virtual Apps and Desktops™ 7 2003 起不受支持。但您可以继续使用 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:在模板 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-->
步骤 1c:启用存储库以安装 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-->
步骤 1d:安装包含 ntfs-3g 的 EPEL 存储库
在 RHEL 8/CentOS 8、RHEL 7/CentOS 7 上安装 EPEL 存储库,以便稍后运行 deploymcs.sh 时安装其中包含的 ntfs-3g 软件包。
步骤 1e:在 SUSE 12 上手动安装 ntfs-3g
在 SUSE 12 平台上,没有提供 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-->
步骤 1f:设置运行时环境
运行 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--> -
步骤 1g:创建主映像
- 运行
/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 的托管连接
- 1. 在 Citrix Cloud™ 上的 Citrix Studio 中,选择**配置 > 托管 > 添加连接和资源**以创建到 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:在模板 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 上安装应用程序,然后从 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:在模板 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-->
步骤 2b:安装包含 ntfs-3g 的 EPEL 存储库
在 RHEL 8/CentOS 8、RHEL 7/CentOS 7 上安装 EPEL 存储库,以便稍后运行 deploymcs.sh 时安装其中包含的 ntfs-3g 软件包。
步骤 2c:在 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-->
步骤 2d:设置运行时环境
运行 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(SSSD 不支持 SUSE)。
- `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--> ```
步骤 2e:创建主映像
- 运行
/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 创建计算机目录](/zh-cn/citrix-virtual-apps-desktops/install-configure/machine-catalogs-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) 控制台。
- 在左侧导航窗格中,选择“用户”。
- 选择目标用户并向下滚动以选择“安全凭证”选项卡。
- 向下滚动并单击“创建访问密钥”。将出现一个新窗口。
- 单击“下载 .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--> -
要使用 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:在模板 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 编译器集合 (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 上安装应用程序,然后从 AWS EC2 门户关闭模板 VM。确保模板 VM 的实例状态为 Stopped。
-
右键单击模板 VM,然后选择映像 > 创建映像。根据需要键入信息并进行设置。单击创建映像。

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


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

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

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

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

步骤 3:准备主映像
主映像包含操作系统、非虚拟化应用程序、VDA 和其他软件。要准备主映像,请执行以下操作:
步骤 3a:在模板 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-->
步骤 3b:安装包含 ntfs-3g 的 EPEL 存储库
在 RHEL 8/CentOS 8、RHEL 7/CentOS 7 上安装 EPEL 存储库,以便稍后运行 deploymcs.sh 时安装其中包含的 ntfs-3g 软件包。
步骤 3c:在 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-->
步骤 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 地址。 -
AD_INTEGRATION:设置 Winbind 或 SSSD(SSSD 不支持 SUSE)。 -
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-->
步骤 3e:创建主映像
- 运行
/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 中,选择新快照以更新计算机目录。等待每台计算机重新启动。请勿手动重新启动计算机。
自动化计算机帐户密码更新
默认情况下,计算机帐户密码在计算机目录创建 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 更新计算机帐户密码。
每次计算机帐户密码更新后,交付控制器上的票证缓存将失效,并且 /var/log/xdl/jproxy.log 中可能会出现以下错误:
[ERROR] - AgentKerberosServiceAction.Run: GSSException occurred. Error: Failure unspecified at GSS-API level (Mechanism level: Checksum failed)
为消除此错误,请定期清除票证缓存。您可以在所有交付控制器或域控制器上安排缓存清理任务。
在 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 启动时会被调用。