第 7 章 模板
模板是虚拟机的副本,您可以使用它来简化后续类似虚拟机的重复创建。模板捕获软件配置、硬件配置以及模板所基于的虚拟机上安装的软件配置。基于模板的虚拟机称为源虚拟机。
基于虚拟机创建模板时,将创建虚拟机的磁盘只读副本。此只读磁盘成为新模板的基础磁盘映像,以及基于模板创建的任何虚拟机的磁盘镜像。因此,环境中存在基于模板创建的任何虚拟机时,无法删除该模板。
基于模板创建的虚拟机使用与原始虚拟机相同的 NIC 类型和驱动程序,但分配不同的 MAC 地址。
您可以通过
7.1. 在准备部署作为模板封装虚拟机
这部分论述了封装 Linux 和 Windows 虚拟机的步骤。封装是在基于该虚拟机创建模板之前从虚拟机中删除所有系统特定详情的过程。封装的目的是防止在基于同一模板创建的多个虚拟机上显示相同的详细信息。还必须确保其他功能(如可预测的 vNIC 顺序)的功能。
7.1.1. 为将 Linux 虚拟机封装为模板
要在模板创建过程中封装 Linux 虚拟机,请在 New Template 窗口中选中 Seal Template 复选框。详情请查看 第 7.2 节 “创建模板”。
您无法根据 Red Hat Virtualization 4.3 中的 RHEL 8.0 虚拟机创建密封的虚拟机模板,因为有以下限制:
- Red Hat Enterprise Linux 7 上的 libguestfs 工具不支持修改 Red Hat Enterprise Linux 8 磁盘镜像,因为 Red Hat Enterprise Linux 8 中添加了额外的 XFS 功能。
- Red Hat Virtualization 4.3 不支持基于 Red Hat Enterprise Linux 8.0 的虚拟机监控程序
7.1.2. 为将 Windows 虚拟机封装为模板
为 Windows 虚拟机创建的模板必须经过规范(密封),然后才能用于部署虚拟机。这样可确保模板中不会再生成特定于机器的设置。
在使用之前,使用 sysprep
封装 Windows 模板。Sysprep
会生成一个完整的无人值守安装应答文件。多个 Windows 操作系统的默认值可在 /usr/share/ovirt-engine/conf/sysprep/ 目录中找到。这些文件充当 Sysprep
的模板。可以根据需要复制、粘贴和更改这些文件中的字段。此定义将覆盖 Edit Virtual Machine 窗口上 Initial Run 字段中输入的任何值。
可以编辑 Sysprep 文件,以影响从 Sysprep 文件所附加的模板中创建的 Windows 虚拟机的各个方面。这包括置备 Windows、设置所需的域成员资格、配置主机名和设置安全策略。
可以使用替换字符串替换 /usr/share/ovirt-engine/conf/sysprep/ 目录中默认文件中提供的值。例如 :"<Domain><![CDATA[$JoinDomain$]]></Domain>"
可以用来指示要加入的域。
7.1.2.1. 密封 Windows 虚拟机的先决条件
请勿在 Sysprep 运行时重启虚拟机。
在启动 Sysprep
前,请验证是否已配置以下设置:
- Windows 虚拟机参数已正确定义。
-
如果没有,在
中点 Edit,然后在 Operating System 和 Cluster 字段中输入所需的信息。 - 管理器上的覆盖文件中定义了正确的产品密钥。
覆盖文件必须在 /etc/ovirt-engine/osinfo.conf.d/ 下创建,其文件名将其放置在 /etc/ovirt-engine/osinfo.conf.d/00-defaults.properties 下,并以 .properties 结束。例如: /etc/ovirt-engine/osinfo.conf.d/10-productkeys.properties。最后一个文件将具有优先权并覆盖任何其他文件。
如果没有,请将 Windows 操作系统的默认值从 /etc/ovirt-engine/osinfo.conf.d/00-defaults.properties 复制到覆盖文件中,并在 productKey.value
和 sysprepPath.value
字段中输入您的值。
例 7.1. Windows 7 默认配置值
# Windows7(11, OsType.Windows, false),false os.windows_7.id.value = 11 os.windows_7.name.value = Windows 7 os.windows_7.derivedFrom.value = windows_xp os.windows_7.sysprepPath.value = ${ENGINE_USR}/conf/sysprep/sysprep.w7 os.windows_7.productKey.value = os.windows_7.devices.audio.value = ich6 os.windows_7.devices.diskInterfaces.value.3.3 = IDE, VirtIO_SCSI, VirtIO os.windows_7.devices.diskInterfaces.value.3.4 = IDE, VirtIO_SCSI, VirtIO os.windows_7.devices.diskInterfaces.value.3.5 = IDE, VirtIO_SCSI, VirtIO os.windows_7.isTimezoneTypeInteger.value = false
7.1.2.2. 将 Windows 7、Windows 2008 或 Windows 2012 虚拟机封装为模板
在创建用于部署虚拟机的模板之前,先密封 Windows 7、Windows 2008 或 Windows 2012 虚拟机。
封装 Windows 7、Windows 2008 或 Windows 2012 虚拟机以作为模板部署
-
在 Windows 虚拟机上,从 C:\Windows\System32\sysprep\sysprep\sysprep.exe 启动
Sysprep
。 在
Sysprep
中输入以下信息:- 在 System Cleanup Action 下,选择 Enter System Out-of-Experience(OOBE)。
- 如果需要更改计算机的系统标识号(SID),请选择 Generalize 复选框。
- 在关闭选项下,选择 Shutdown。
- 单击 以完成密封过程;虚拟机将在完成后自动关闭。
Windows 7、Windows 2008 或 Windows 2012 虚拟机已密封,准备好创建用于部署虚拟机的模板。