Citrix Hypervisor

网络引导安装

Citrix Hypervisor 支持使用 UEFI 模式引导主机。UEFI 模式向 Bootloader 和操作系统提供了一套丰富的标准化工具。此功能使客户能够更加轻松地在默认引导模式为 UEFI 的主机上安装 Citrix Hypervisor。

注意:

  • UEFI 引导不支持旧版 DOS 分区布局。
  • UEFI 安全引导不适用于 Citrix Hypervisor 主机。

下节包含有关如何设置 TFTP 和 NFS、FTP 或 HTTP 服务器以对 Citrix Hypervisor 服务器安装启用 PXE 和 UEFI 引导的信息。然后说明如何创建 XML 应答文件,通过该文件可以执行无人参与安装。

为 Citrix Hypervisor 安装配置 PXE 和 UEFI 环境

在设置 Citrix Hypervisor 安装介质之前,请配置 TFTP 和 DHCP 服务器。以下部分介绍如何将您的 TFTP 服务器配置为进行 PXE 和 UEFI 引导。有关常规设置过程,请查阅供应商文档。

注意:

XenServer 6.0 已从 MBR 磁盘分区方案改为使用 GUID 分区表 (GPT)。某些第三方 PXE 部署系统在将映像部署到主机之前,可能会尝试读取该计算机硬盘上的分区表。

如果部署系统与 GPT 分区方案不兼容,并且以前已使用该硬盘安装使用 GPT 的 Citrix Hypervisor 版本,则 PXE 部署系统可能会出现故障。此故障的解决方法是删除磁盘上的分区表。

除了 TFTP 和 DHCP 服务器外,还需要一个 NFS、FTP 或 HTTP 服务器来保存 Citrix Hypervisor 安装文件。这些服务器可在同一个服务器上共存,也可分布在网络中的不同服务器上。

注意:

带标记的 VLAN 网络不支持 PXE 引导。确保未标记用于 PXE 引导的 VLAN 网络。

此外,每个要进行 PXE 引导的 Citrix Hypervisor 服务器都必须具有一个启用了 PXE 引导的以太网卡。

以下步骤假定所用 Linux 服务器支持 RPM。

将 TFTP 服务器配置为进行 PXE 引导

  1. 在 TFTP 根目录(例如 /tftpboot)中,创建一个名为 xenserver 的目录。

  2. mboot.c32pxelinux.0 文件从安装介质的 /boot/pxelinux 目录复制到 TFTP 根目录。

    注意:

    我们强烈建议您使用来自同一来源(例如,来自同一 Citrix Hypervisor ISO)的 mboot.c32pxelinux.0 文件。

  3. 将以下文件从 Citrix Hypervisor 安装介质复制到 TFTP 服务器上的新 xenserver 目录中:

    • 根目录中的 install.img
    • /boot 目录中的 vmlinuz
    • /boot 目录中的 xen.gz
  4. 在 TFTP 根目录(例如,/tftpboot)中,创建一个名为 pxelinux.cfg 的目录。

  5. pxelinux.cfg 目录中,创建名为 default 的配置文件。

    此文件的内容取决于您希望如何配置 PXE 引导环境以及适合您的服务器的值。

    下面列出了两个示例配置:

    • 示例:无人参与安装 此示例配置会使用指定 URL 处的应答文件执行无人参与安装:

           default xenserver-auto
           label xenserver-auto
               kernel mboot.c32
               append xenserver/xen.gz dom0_max_vcpus=1-16 \
                   dom0_mem=max:8192M com1=115200,8n1 \
                   console=com1,vga ---  xenserver/vmlinuz \
                   console=hvc0 console=tty0 \
                   answerfile=<http://pxehost.example.com/answer_file> \
                   answerfile_device=<device> \
                   install ---  xenserver/install.img
       <!--NeedCopy-->
      

      注意:

      要指定用于检索应答文件的网络适配器,请将 answerfile_device=ethXanswerfile_device=MAC 参数包括在内,并指定该设备的以太网设备号或 MAC 地址。

      有关使用应答文件的详细信息,请参阅为无人参与的 PXE 和 UEFI 安装创建应答文件

    • 示例:手动安装 此示例配置会启动从 TFTP 服务器引导的在任何计算机上进行的安装且需要手动响应:

           default xenserver
           label xenserver
               kernel mboot.c32
               append xenserver/xen.gz dom0_max_vcpus=1-16 \
               dom0_mem=max:8192M com1=115200,8n1 \
               console=com1,vga ---  xenserver/vmlinuz \
               console=hvc0 console=tty0 \
               ---  xenserver/install.img
       <!--NeedCopy-->
      

    有关 PXE 配置文件内容的详细信息,请参阅 SYSLINUX Web 站点。

将 TFTP 服务器配置为进行 UEFI 引导

要将 TFTP 服务器配置为进行 UEFI 引导,请执行以下操作:

  1. 在 TFPT 根目录(例如,/tftpboot)中,创建一个名为 EFI/xenserver 的目录。

  2. 配置 DHCP 服务器以提供 /EFI/xenserver/grubx64.efi 作为引导文件。

  3. 创建 grub.cfg 文件。例如:

    • 对于需要手动响应安装提示的安装:

       menuentry "Citrix Hypervisor Install (serial)" {
           multiboot2 /EFI/xenserver/xen.gz dom0_max_vcpus=1-16 dom0_mem=max:8192M com1=115200,8n1 console=com1,vga
           module2 /EFI/xenserver/vmlinuz console=hvc0 console=tty0
           module2 /EFI/xenserver/install.img
       }
       <!--NeedCopy-->
      
    • 对于使用应答文件的无人参与安装:

       menuentry "Citrix Hypervisor Install (serial)" {
           multiboot2 /EFI/xenserver/xen.gz dom0_max_vcpus=1-16 dom0_mem=max:8192M com1=115200,8n1 console=com1,vga
           module2 /EFI/xenserver/vmlinuz console=hvc0 console=tty0 answerfile_device=eth0 answerfile=http://<ip_address>/<path_to_answer_file> install
           module2 /EFI/xenserver/install.img
       }
       <!--NeedCopy-->
      

    有关使用应答文件的详细信息,请参阅为无人参与的 PXE 和 UEFI 安装创建应答文件

  4. grub.cfg 文件复制到 TFTP 服务器上的 EFI/xenserver 目录。

  5. 将以下文件从 Citrix Hypervisor 安装介质复制到 TFTP 服务器上的新 EFI/xenserver 目录中:

    • /EFI/xenserver 目录中的 grubx64.efi
    • 根目录中的 install.img
    • /boot 目录中的 vmlinuz
    • /boot 目录中的 xen.gz

有关特定操作系统的详细信息,请参阅服务器操作系统手册。此处提供的信息可用作 Red Hat、Fedora 和一些基于 RPM 的其他版本的指南。

要在 HTTP、FTP 或 NFS 服务器上设置 Citrix Hypervisor 安装介质,请执行以下操作:

  1. 在服务器上,创建将通过 HTTP、FTP 或 NFS 从其导出 Citrix Hypervisor 安装介质的目录。

  2. 将 Citrix Hypervisor 安装介质的全部内容复制到 HTTP、FTP 或 NFS 服务器上新创建的目录中。此目录将是您的安装库。

    注意:

    复制 Citrix Hypervisor 安装介质时,请务必将文件 .treeinfo 复制到新创建的目录。

要准备目标系统,请执行以下操作:

  1. 启动系统并进入引导菜单(在大多数 BIOS 程序中按 F12 键)。

  2. 选择从以太网卡进行引导。

  3. 然后,系统将从您设置的安装源进行 PXE 引导并开始执行安装脚本。如果您设置了一个应答文件,则以无人参与方式执行安装。

在 Citrix Hypervisor 安装期间安装补充包

通过将软件安装到控制域 (Dom0),可以使用补充包来修改和扩展 Citrix Hypervisor 的功能。例如,OEM 合作伙伴可能希望在 Citrix Hypervisor 中随附一套需要安装 SNMP 代理才能使用的管理工具。用户可以在初始 Citrix Hypervisor 安装过程中或以后的任意时间添加补充包。

在 Citrix Hypervisor 安装期间安装补充包时,请将每个补充包解压到一个单独的目录中。

此外,还存在一些可供 OEM 合作伙伴在将补充包添加到 Citrix Hypervisor 安装存储库时使用的工具,以允许自动执行出厂安装。

创建无人参与 PXE 和 UEFI 安装的应答文件

要以无人参与方式执行安装,请创建一个 XML 应答文件。以下是一个示例应答文件:

<?xml version="1.0"?>
    <installation srtype="ext">
        <primary-disk>sda</primary-disk>
        <guest-disk>sdb</guest-disk>
        <guest-disk>sdc</guest-disk>
        <keymap>us</keymap>
        <root-password>mypassword</root-password>
        <source type="url">http://pxehost.example.com/citrix-hypervisor/</source>
        <post-install-script type="url">
          http://pxehost.example.com/myscripts/post-install-script
        </post-install-script>
        <admin-interface name="eth0" proto="dhcp" />
        <timezone>Europe/London</timezone>
    </installation>
<!--NeedCopy-->

包含名为 installation 的根节点中的所有节点。

注意:

要启用精简预配,请将 srtype 属性指定为 ext。如果不指定该属性,则默认本地存储类型为 LVM。精简预配将本地存储类型设置为 EXT4 并启用本地缓存,以便 Citrix Virtual Desktops 能够正常运行。有关详细信息,请参阅存储

使用应答文件自动升级

还可以通过适当更改应答文件来执行自动升级。

  1. installation 元素的 mode 属性设置为 upgrade
  2. 使用 existing-installation 元素指定现有安装所在的磁盘。
  3. primary-diskguest-disk 元素保留为未指定。

例如:

<?xml version="1.0"?>
<installation mode="upgrade">
    <existing-installation>sda</existing-installation>
    <source type="url">http://pxehost.example.com/xenserver/</source>
    <post-install-script type="url">
        http://pxehost.example.com/myscripts/post-install-script
    </post-install-script>
</installation>
<!--NeedCopy-->

应答文件参考

下表汇总了相应的元素。除非另行说明,否则所有值都是文本。表中指明了哪些是必需的元素。

<installation>

必需?

说明: 包含所有其他元素的根元素。

属性:

  • 要启用精简预配,请将 srtype 属性指定为 ext。如果不指定该属性,则默认本地存储类型为 LVM。精简预配将本地存储类型设置为 EXT4 并启用本地缓存,以便 Citrix Virtual Desktops 能够正常运行。有关详细信息,请参阅存储
  • 要将安装类型更改为升级,请指定值为 upgrademode 属性 。如果未指定此属性,安装程序将执行全新安装并覆盖服务器上的所有现有数据。

<primary-disk>

必需?

注意:

不推荐用于升级场景。

说明: 安装了控制域的存储设备的名称。此元素相当于在手动安装过程的选择主磁盘步骤中所做的选择。

属性: 可以指定 guest-storage 属性,可能的值为 yesno。 例如:<primary-disk guest-storage="no">sda</primary-disk>

默认值为 yes。如果指定 no,则可以自动执行不创建任何存储库的安装场景。在这种情况下,请不要指定任何 guest-disk 键。

<guest-disk>

必需?

说明: 用于存储来宾的存储设备的名称。对每个附加磁盘使用其中一个元素。

属性:

<keymap>

必需?

说明: 安装期间使用的键映射名称。<keymap>us</keymap> 如果不为此元素指定一个值,请考虑默认值 us

属性:

<root-password>

必填:

说明: Citrix Hypervisor 服务器所需的 root 密码。如果未提供密码,在首次引导服务器时将显示一个提示。

属性: 可以将 type 指定为 hashplaintext

例如:

<root-password type="hash">hashedpassword</root-password>
<!--NeedCopy-->

哈希值可以使用 crypt(3) 中的 glibc 支持的任何哈希类型。默认哈希类型为 SHA-512。

可以使用以下 Python 代码生成哈希密码字符串以包含在应答文件中:

python -c 'import crypt; print(crypt.crypt("mypasswordhere", crypt.mksalt(crypt.METHOD_SHA512)))'
<!--NeedCopy-->

<source>

必填:

说明: 上载的 Citrix Hypervisor 安装介质或补充包的位置。此元素可以出现多次。

属性: 属性 type 可以具有以下值之一:urlnfslocal

如果值为 local,请将元素保留为空。例如,

<source type="url">http://server/packages</source>
<source type="local" />
<source type="nfs">server:/packages</source>
<!--NeedCopy-->

<script>

必填:

说明: 安装后脚本所在的位置。

属性:

属性 stage 可以具有以下值之一:filesystem-populatedinstallation-startinstallation-complete

  • 使用值 filesystem-populated 时,脚本将仅在卸载根文件系统之前运行(例如,安装/升级后、initrd 已构建等)。该脚本将接收指示根文件系统装载点参数。

  • 使用 installation-start 值时,脚本在启动主安装序列之前运行,但在安装程序初始化、加载所有驱动程序并处理应答文件之后运行。该脚本不接收任何参数。

  • 使用值 installation-complete 时,安装程序完成所有操作后,该脚本即会运行(从而卸载根文件系统)。如果安装成功完成,脚本接收的参数值为零,如果安装因任何原因而失败,则脚本接收的参数值为非零值。

属性 type 可以具有以下值之一:urlnfslocal

如果值为 urlnfs,请将 URL 或 NFS 路径放在 PCDATA 中。如果值为 local,请将 PCDATA 留空。例如,

<script stage="filesystem-populated" type="url">
    http://prehost.example.com/post-install-script
</script>
<script stage="installation-start" type="local">
    file:///scripts/run.sh
</script>
<script stage="installation-complete" type="nfs">
    server:/scripts/installation-pass-fail-script
</script>
<!--NeedCopy-->

注意:

如果使用本地文件,请确保路径为绝对路径。这通常意味着,file:// 前缀将依次后跟另一个正斜线以及脚本的完整路径。

<admin-interface>

必需: 有时

注意:

在安装/重新安装过程中需要,但在升级或还原过程中不需要。

说明: 用作主机管理接口的单一网络接口。

属性:

指定以下属性之一:

  • name - 您的网络接口的名称,例如 eth0
  • hwaddr - 您的网络接口的 MAC 地址,例如 00:00:11:aa:bb:cc

属性 proto 可以具有以下值之一:dhcpstatic

如果指定 proto="static",还必须指定所有这些子元素:

子元素

  • <ipaddr>:IP 地址
  • <subnet>:子网掩码
  • <gateway>:网关

<timezone>

必填:

说明: TZ 变量使用的时区格式,例如 Europe/London 或 America/Los_Angeles。默认值为 Etc/UTC

<name-server>

必填:

说明: 名称服务器的 IP 地址。请对要使用的每个名称服务器使用这些元素中的一个元素。

<hostname>

必填:

说明: 如果要手动设置主机名,请指定此元素。

<ntp-server>

必填:

说明: 指定一个或多个 NTP 服务器。

网络引导安装