Linux Virtual Delivery Agent

使用 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 是 是 否 否
  • 在 Citrix Hypervisor 上使用 MCS 创建 Linux VM

  • 步骤 1:准备主映像

  • 主映像包含操作系统、非虚拟化应用程序、VDA 和其他软件。要准备主映像,请执行以下操作:

步骤 1a:安装 Citrix VM Tools

必须在模板 VM 上安装 Citrix VM Tools,以便每个 VM 都能使用 xe CLI 或 XenCenter。除非安装了工具,否则 VM 性能可能会很慢。如果没有这些工具,您将无法执行以下任何操作:

  • 干净地关闭、重新启动或暂停 VM。
  • 在 XenCenter 中查看 VM 性能数据。
  • 迁移正在运行的 VM(通过 XenMotion)。
    • 创建快照或带内存的快照(检查点),并还原到快照。
    • 调整正在运行的 Linux VM 上的 vCPU 数量。
  1. 运行以下命令以装载名为 guest-tools.iso 的 Citrix VM Tools。

    sudo mount /dev/cdrom /mnt
    <!--NeedCopy-->
    
  2. 运行以下命令以根据您的 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-->
    
  3. 在 XenCenter 的常规选项卡上检查模板 VM 的虚拟化状态。如果 Citrix VM Tools 安装正确,则虚拟化状态为已优化:

    Virtualization state being optimized

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

  1. 安装 GNU 编译器集合 (GCC) 编译器系统和 make 软件包:

    sudo zypper install gcc
    sudo zypper install make
    <!--NeedCopy-->
    
  2. 下载 ntfs-3g 软件包。

  3. 解压缩 ntfs-3g 软件包:

    sudo tar -xvzf ntfs-3g_ntfsprogs-<package version>.tgz
    <!--NeedCopy-->
    
  4. 输入 ntfs-3g 软件包的路径:

    sudo cd ntfs-3g_ntfsprogs-<package version>
    <!--NeedCopy-->
    
  5. 安装 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:创建主映像

  1. 运行 /opt/Citrix/VDA/sbin/deploymcs.sh。
  2. (可选)在模板 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 等变量。

  3. 在 Citrix Hypervisor 上,关闭模板 VM。创建并命名主映像的快照。

步骤 2:创建计算机目录

在 Citrix Studio 中,创建计算机目录并指定要在目录中创建的 VM 数量。根据需要执行其他配置任务。有关详细信息,请参阅使用 Studio 创建计算机目录。

步骤 3:创建交付组

交付组是从一个或多个计算机目录中选择的计算机集合。交付组指定哪些用户可以使用这些计算机,以及这些用户可用的应用程序和桌面。有关详细信息,请参阅创建交付组。

  • 使用 MCS 在 Azure 上创建 Linux VM

步骤 1:在 Citrix Studio 中创建到 Azure 的托管连接

-  1.  在 Citrix Cloud™ 上的 Citrix Studio 中,选择**配置 > 托管 > 添加连接和资源**以创建到 Azure 的连接。

-  ![创建到 Azure 的连接的图像](/zh-cn/linux-virtual-delivery-agent/2103/media/create-connection-to-azure.png)
  1. 选择 Microsoft Azure 作为连接类型。

    选择 Azure 连接类型的图像

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

    键入 Azure 订阅 ID 的图像

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

    新 Azure 连接的图像

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

  1. 安装 GNU Compiler Collection (GCC) 编译器系统和 make 软件包:

    sudo zypper install gcc
    sudo zypper install make
    <!--NeedCopy-->
    
  2. 下载 ntfs-3g 软件包。

  3. 解压缩 ntfs-3g 软件包:

    sudo tar -xvzf ntfs-3g_ntfsprogs-<package version>.tgz
    <!--NeedCopy-->
    
      1. 输入 ntfs-3g 软件包的路径:
    sudo cd ntfs-3g_ntfsprogs-<package version>
    <!--NeedCopy-->
    
  4. 安装 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:创建主映像

  1. 运行 /opt/Citrix/VDA/sbin/deploymcs.sh。
  2. (可选)在模板 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 等变量。

  3. 在模板 VM 上安装应用程序,然后从 Azure 门户关闭模板 VM。确保模板 VM 的电源状态为 “已停止(已解除分配)”。请记住此处的资源组名称。您需要该名称才能在 Azure 上找到您的主映像。

    已停止的模板 VM 电源状态图像

步骤 3:创建计算机目录

    -  在 Citrix Studio 中,创建计算机目录并指定要在目录中创建的 VM 数量。创建计算机目录时,从模板 VM 所属的资源组中选择您的主映像,并找到模板 VM 的 VHD。

-  ![查找模板 VM 的 VHD 图像](/zh-cn/linux-virtual-delivery-agent/2103/media/find-vhd-of-template-vm2.png)

根据需要执行其他配置任务。有关详细信息,请参阅使用 Studio 创建计算机目录。

步骤 4:创建交付组

交付组是选自一个或多个计算机目录的计算机集合。交付组指定哪些用户可以使用这些计算机,以及这些用户可用的应用程序和桌面。有关详细信息,请参阅创建交付组。

使用 MCS 在 VMware vSphere 上创建 Linux VM

步骤 1:在 Citrix Studio 中创建到 VMware 的主机连接

  1. 在 vSphere 环境中安装 vCenter Server。有关详细信息,请参阅 VMware vSphere。

  2. 在 Citrix Studio 中,选择 “配置”>“主机”>“添加连接和资源” 以创建到 VMware vSphere 的连接。

    创建到 Azure 的连接图像

  3. 选择 VMware vSphere 作为连接类型。

    选择 VMware vSphere 图像

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

    VMware 连接名称图像

    主机连接窗格中显示新连接。

    新 vSphere 连接图像

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

  1. 安装 GNU Compiler Collection (GCC) 编译器系统和 make 软件包:

    sudo zypper install gcc
    sudo zypper install make
    <!--NeedCopy-->
    
  2. 下载 ntfs-3g 软件包。

  3. 解压缩 ntfs-3g 软件包:

    sudo tar -xvzf ntfs-3g_ntfsprogs-<package version>.tgz
    <!--NeedCopy-->
    
  4. 输入 ntfs-3g 软件包的路径:

    sudo cd ntfs-3g_ntfsprogs-<package version>
    <!--NeedCopy-->
    
  5. 安装 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:创建主映像

  1. 运行 /opt/Citrix/VDA/sbin/deploymcs.sh。
  2. (可选)在模板 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 等变量。

  3. 在模板 VM 上完成应用程序安装后,从 VMware 关闭模板 VM。创建模板 VM 的快照。

步骤 3:创建计算机目录

-  在 Citrix Studio 中,创建计算机目录并指定要在目录中创建的 VM 数量。创建计算机目录时,从快照列表中选择主映像。

-  ![选择主映像的图像](/zh-cn/linux-virtual-delivery-agent/2103/media/choose-master-image-from-the-list.png)

-  根据需要执行其他配置任务。有关详细信息,请参阅[使用 Studio 创建计算机目录](/zh-cn/citrix-virtual-apps-desktops/install-configure/machine-catalogs-create.html)。
  • 步骤 4:创建交付组

交付组是选自一个或多个计算机目录的计算机集合。交付组指定哪些用户可以使用这些计算机,以及这些用户可用的应用程序和桌面。有关详细信息,请参阅创建交付组。

使用 MCS 在 AWS 上创建 Linux VM

步骤 1:在 Citrix Studio 中创建到 AWS 的托管连接

  1. 在 Citrix Cloud 上的 Citrix Studio 中,选择“配置”> “托管”> “添加连接和资源”以创建到 AWS 的连接。

    创建到 AWS 的连接的图像

  2. 选择 Amazon EC2 作为连接类型。

    选择 Amazon EC2 的图像

  3. 键入 AWS 帐户的 API 密钥和秘密密钥,然后键入连接名称。

    访问密钥对的图像

    API 密钥是您的访问密钥 ID,秘密密钥是您的秘密访问密钥。它们被视为访问密钥对。如果丢失了秘密访问密钥,可以删除该访问密钥并创建另一个。要创建访问密钥,请执行以下操作:

    1. 登录到 AWS 服务。
    2. 导航到 Identity and Access Management (IAM) 控制台。
    3. 在左侧导航窗格中,选择“用户”。
    4. 选择目标用户并向下滚动以选择“安全凭证”选项卡。
    5. 向下滚动并单击“创建访问密钥”。将出现一个新窗口。
    6. 单击“下载 .csv 文件”并将访问密钥保存到安全位置。

    新的连接将显示在托管窗格中。

    新 AWS 连接的图像

步骤 2:准备主映像

主映像包含操作系统、非虚拟化应用程序、VDA 和其他软件。要准备主映像,请执行以下操作:

步骤 2a:配置 cloud-init

  1. 为确保 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-->
    
  2. 要使用 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:

  1. 安装 GNU 编译器集合 (GCC) 编译器系统和 make 软件包:

    sudo zypper install gcc
    sudo zypper install make
    <!--NeedCopy-->
    
  2. 下载 ntfs-3g 软件包。

  3. 解压缩 ntfs-3g 软件包:

    sudo tar -xvzf ntfs-3g_ntfsprogs-<package version>.tgz
    <!--NeedCopy-->
    
  4. 输入 ntfs-3g 软件包的路径:

    sudo cd ntfs-3g_ntfsprogs-<package version>
    <!--NeedCopy-->
    
  5. 安装 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:创建主映像

  1. 运行 /opt/Citrix/VDA/sbin/deploymcs.sh。
  2. (可选)在模板 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 等变量。

  3. 在模板 VM 上安装应用程序,然后从 AWS EC2 门户关闭模板 VM。确保模板 VM 的实例状态为 Stopped。

  4. 右键单击模板 VM,然后选择映像 > 创建映像。根据需要键入信息并进行设置。单击创建映像。

    创建 EBS 映像的图像

步骤 3:创建计算机目录

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

创建计算机目录的图像

选择安全组的图像

根据需要执行其他配置任务。有关详细信息,请参阅使用 Studio 创建计算机目录。

步骤 4:创建交付组

交付组是选自一个或多个计算机目录的计算机集合。交付组指定哪些用户可以使用这些计算机,以及这些用户可用的应用程序和桌面。有关详细信息,请参阅创建交付组。

在 GCP 上使用 MCS 创建 Linux VM

步骤 1:设置您的 GCP 环境

有关详细信息,请参阅Google Cloud Platform 虚拟化环境。

步骤 2:在 Citrix Studio 中创建到 GCP 的托管连接

  1. 在 Citrix Cloud 上的 Citrix Studio 中,选择配置 > 托管 > 添加连接和资源以创建到 GCP 的连接。

    创建到 GCP 的连接的图像

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

    选择 Amazon EC2 的图像

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

    访问密钥对的图像

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

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

  1. 安装 GNU Compiler Collection (GCC) 编译器系统和 make 软件包:

    sudo zypper install gcc
    sudo zypper install make
    <!--NeedCopy-->
    
  2. 下载 ntfs-3g 软件包。

  3. 解压缩 ntfs-3g 软件包:

    sudo tar -xvzf ntfs-3g_ntfsprogs-<package version>.tgz
    <!--NeedCopy-->
    
  4. 输入 ntfs-3g 软件包的路径:

    sudo cd ntfs-3g_ntfsprogs-<package version>
    <!--NeedCopy-->
    
  5. 安装 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:创建主映像

  1. 运行 /opt/Citrix/VDA/sbin/deploymcs.sh。
  2. (可选)在模板 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 等变量。

  3. 在模板 VM 上完成应用程序安装后,从 VMware 关闭模板 VM。拍摄模板 VM 的快照。

步骤 4:创建计算机目录

在 Citrix Studio 中,创建计算机目录并指定要在该目录中创建的 VM 数量。创建计算机目录时,请从快照列表中选择主映像。

选择主映像的图像

根据需要执行其他配置任务。有关详细信息,请参阅使用 Studio 创建计算机目录。

步骤 5:创建交付组

交付组是选自一个或多个计算机目录的计算机集合。交付组指定哪些用户可以使用这些计算机,以及这些用户可用的应用程序和桌面。有关详细信息,请参阅创建交付组。

使用 MCS 升级 Linux VDA

要使用 MCS 升级 Linux VDA,请执行以下操作:

  1. 确保在将 Linux VDA 升级到当前版本之前安装了 .NET Core Runtime 3.1。

  2. 在模板计算机上升级 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-->
    
  3. 编辑 /etc/xdl/mcs/mcs.conf 和 /etc/xdl/mcs/mcs_local_setting.reg。

  4. 拍摄新快照。

  5. 在 Citrix Studio 中,选择新快照以更新计算机目录。等待每台计算机重新启动。请勿手动重新启动计算机。

自动化计算机帐户密码更新

默认情况下,计算机帐户密码在计算机目录创建 30 天后过期。为防止密码过期并自动化计算机帐户密码更新,请执行以下操作:

  1. 在运行 /opt/Citrix/VDA/sbin/deploymcs.sh 之前,将以下条目添加到 /etc/xdl/mcs/mcs.conf。

    UPDATE_MACHINE_PW="enabled"

  2. 运行 /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

  1. 运行脚本 opt/Citrix/VDA/sbin/ctxinstall.sh 并设置所有环境变量,例如 FAS 服务器列表。有关环境变量的详细信息,请参阅轻松安装。

    sudo /opt/Citrix/VDA/sbin/ctxinstall.sh
    <!--NeedCopy-->
    
  2. 导入根 CA 证书。

    sudo cp root.pem /etc/pki/CA/certs/
    <!--NeedCopy-->
    
  3. 运行 ctxfascfg.sh。

  4. 在 /etc/xdl/mcs/mcs.conf 中设置变量。
    1. 将 Use_Existing_Configurations_Of_Current_VDA 的值设置为 Y。
    2. 将 FAS_LIST 变量设置为您的 FAS 服务器地址或多个 FAS 服务器地址,这些地址用分号分隔并用双引号括起来,例如 FAS_LIST="<FAS_SERVER_FQDN>;<FAS_SERVER_FQDN>"。
    3. 根据需要设置其他变量,例如 VDI_MODE。
  5. 运行脚本 /opt/Citrix/VDA/sbin/deploymcs.sh。

在 MCS 创建的 VM 上启用 FAS

如果未如前所述在模板计算机上启用 FAS,您可以在每个 MCS 创建的 VM 上启用 FAS。

要在 MCS 创建的 VM 上启用 FAS,请执行以下操作:

  1. 在 /etc/xdl/mcs/mcs.conf 中设置变量。

    1. 将 Use_Existing_Configurations_Of_Current_VDA 的值设置为 Y。
    2. 将 FAS_LIST 变量设置为您的 FAS 服务器地址。
    3. 根据需要设置其他变量,例如 VDI_MODE。
  2. 导入根 CA 证书。

    sudo cp root.pem /etc/pki/CA/certs/
    <!--NeedCopy-->
    
  3. 运行脚本 /opt/Citrix/VDA/sbin/ctxfascfg.sh。

注意:

您必须在 /etc/xdl/mcs/mcs.conf 中设置所有必要的变量,因为这些变量在 VM 启动时会被调用。