7.4. 为准备创建模板封装虚拟机
7.4.1. 封装 Linux 虚拟机来为创建模板做准备
sys-unconfig 命令。当手工封装一个 Linux 虚拟机时,您需要在虚拟机上创建一个文件。这个文件作为一个标记,指示了在虚拟机下一次启动时需要进行的多个配置任务。sys-unconfig 命令会自动化这个过程。但是,无论使用这两个方法中的哪一个,您都需要在虚拟机上手工删除那些只适用于特定虚拟机的文件。使用这两个方法封装 Linux 虚拟机的结果是相同的。
7.4.1.1. 手动封装 Linux 虚拟机来为创建模板做准备
过程 7.9. 封闭一个 Linux 虚拟机
- 登录到虚拟机。
- 把这个系统标识为重新配置:
# touch /.unconfigured
- 删除 ssh 主机密钥:
# rm -rf /etc/ssh/ssh_host_*
- 在
/etc/sysconfig/network中设置HOSTNAME=localhost.localdomain。 - 删除
/etc/udev/rules.d/70-*:# rm -rf /etc/udev/rules.d/70-*
- 从
/etc/sysconfig/network-scripts/ifcfg-eth*中删除HWADDR行和UUID行。 - 另外,从
/var/log中删除所有日志,从/root中删除 build 日志。 - 关闭虚拟机:
# poweroff
7.4.1.2. 使用 sys-unconfig 封装一个 Linux 虚拟机
过程 7.10. 使用 sys-unconfig 封装一个 Linux 虚拟机
- 登录到虚拟机。
- 删除 ssh 主机密钥:
# rm -rf /etc/ssh/ssh_host_*
- 在
/etc/sysconfig/network中设置HOSTNAME=localhost.localdomain。 - 从
/etc/sysconfig/network-scripts/ifcfg-eth*中删除HWADDR行和UUID行。 - 另外,从
/var/log中删除所有日志,从/root中删除 build 日志。 - 请运行以下命令:
# sys-unconfig
7.4.2. 封装 Windows 虚拟机来为创建模板做准备
重要
- Windows Sysprep 参数已经被正确定义。如果还没有定义,点并在操作系统和域项中输入相应的信息。
- 正确的产品密钥已在 Manager 的
/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.4.2.1. 封装一个 Windows 7 或 Windows 2008 模板
过程 7.11. 封装一个 Windows 7 或 Windows 2008 模板
- 通过
C:\Windows\System32\sysprep\sysprep.exe运行 Sysprep。 - 在 Sysprep 中输入以下信息:
- 在 System Cleanup Action 下,选择 Enter System Out-of-Box-Experience (OOBE)。
- 如需修改系统的 ID(SID),选择 Generalize。
- 在 Shutdown Options 下,选择 Shutdown。
- 点 完成封装的过程,在封装完成后,虚拟机会被自动关闭。
7.4.3. 使用 Cloud-Init 自动配置虚拟机
7.4.3.1. Cloud-Init 使用实例
- 基于模板创建的虚拟机
- 当您使用一个模板创建虚拟机时,可以在只运行一次窗口中的初始运行项中使用 Cloud-Init 选择。它会在虚拟机第一次运行时对虚拟机进行自定义配置。
- 虚拟机模板
- 在新建模板和编辑模板窗口中的初始运行页中选择使用 Cloud-Init/Sysprep 选项,来定制基于模板所创建的虚拟机。
- 虚拟机池
- 您可以使用新建池窗口中的初始运行中的使用 Cloud-Init/Sysprep 选项来为基于虚拟机池的虚拟机自定义配置。这允许您设定一组标准的设置,每一次一台虚拟机池中的虚拟机被使用时,这组配置都会应用到那个虚拟机上。您可以继承或覆盖虚拟机所基于的模板中的设置;或为虚拟机池本身指定设置。
7.4.3.2. 安装 Cloud-Init
过程 7.12. 安装 Cloud-Init
- 登录到虚拟机。
- 启用所需的仓库:
- Red Hat Enterprise Linux 6:
# subscription-manager repos --enable=rhel-6-server-rpms # subscription-manager repos --enable=rhel-6-server-rh-common-rpms
- Red Hat Enterprise Linux 7:
# subscription-manager repos --enable=rhel-7-server-rpms # subscription-manager repos --enable=rhel-7-server-rh-common-rpms
- 安装 cloud-init 软件包:
# yum install cloud-init
7.4.3.3. 使用 Cloud-Init 准备一个模板
注意
过程 7.13. 使用 Cloud-Init 准备一个模板
- 选虚拟机标签页并选择一个虚拟机。
- 点。
- 点初始运行标签页,选择使用 Cloud-Init/Sysprep 选项。
- 在虚拟机主机名项中输入主机名。
- 选配置时区并从时区下拉列表中选择所需的时区。
- 展开验证项,您可以选中使用已经配置的密码选项来使用已经存在的密码来进行验证;也可以不选择它而在密码和验证密码项中设置一个新的 root 密码。
- 在SSH 授权密钥项中输入 SSH 密钥,这个密钥会被添加到虚拟机的授权主机文件中。
- 选中重新产生 SSH 密钥选项来为虚拟机重新产生 SSH 密钥。
- 展开网络项,在 DNS 服务器项中输入 DNS 服务器。
- 在 DNS 搜索域中输入 DNS 搜索域。
- 选中网络,并使用 和 键来为虚拟机添加网络接口或从虚拟机上删除网络接口。
- 展开自定义脚本,在自定义脚本项中输入自定脚本。
- 点。
- 点并输入所需的项。
- 点。
7.4.3.4. 使用 Cloud-Init 初始化一台虚拟机
过程 7.14. 使用 Cloud-Init 初始化一台虚拟机
- 选虚拟机标签页并选择一个虚拟机。
- 点。
- 展开初始运行项并选择使用 Cloud-Init。
- 在虚拟机主机名项中输入主机名。
- 选配置时区并从时区下拉菜单中选择所需的时区。
- 您可以选中使用已经配置的密码选项来使用已经存在的密码来进行验证;也可以不选择它而在密码和验证密码项中输入 root 密码。
- 在SSH 授权密钥项中输入 SSH 密钥,这个密钥会被添加到虚拟机的授权主机文件中。
- 选中重新产生 SSH 密钥选项来为虚拟机重新产生 SSH 密钥。
- 在 DNS 服务器项中输入 DNS 服务器。
- 在 DNS 搜索域中输入 DNS 搜索域。
- 选网络,并使用 + 和 - 键来为虚拟机添加网络接口或从虚拟机上删除网络接口。
- 在自定义脚本项中输入自定义脚本。请确定脚本中的值是正确的,否则会导致操作失败。
- 点。
注意

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.