10.2.2. 手动创建虚拟机模板
要从现有虚拟机(VM)创建模板,您可以从客户虚拟机中手动删除特定的配置,以便为克隆做好准备。
先决条件
确保您知道源虚拟机的磁盘镜像的位置,并且是虚拟机磁盘镜像文件的所有者。
请注意,在 libvirt 系统连接 中创建的虚拟机的磁盘镜像默认位于
/var/lib/libvirt/images目录中,并由 root 用户拥有:# ls -la /var/lib/libvirt/images -rw-------. 1 root root 9665380352 Jul 23 14:50 a-really-important-vm.qcow2 -rw-------. 1 root root 8591507456 Jul 26 2017 an-actual-vm-that-i-use.qcow2 -rw-------. 1 root root 8591507456 Jul 26 2017 totally-not-a-fake-vm.qcow2 -rw-------. 1 root root 10739318784 Sep 20 17:57 another-vm-example.qcow2- 确保虚拟机已关闭。
- 可选:虚拟机磁盘上的任何重要数据都已备份。如果要保留源虚拟机,请首先克隆它,并编辑克隆以创建模板。
流程
配置虚拟机以进行克隆:
- 在克隆上安装任何所需的软件。
- 为操作系统配置任何非唯一的设置。
- 配置任何非唯一的应用设置。
删除网络配置:
使用以下命令删除任何持久性 udev 规则:
# rm -f /etc/udev/rules.d/70-persistent-net.rules注意如果没有删除 udev 规则,第一个 NIC 的名称可能是
eth1而不是eth0。从
/etc/NetworkManager/system-connections/目录中的NMConnection文件中删除唯一信息。删除 MAC 地址、IP 地址、DNS、网关和其他唯一信息或不需要的设置。
*ID=ExampleNetwork BOOTPROTO="dhcp" HWADDR="AA:BB:CC:DD:EE:FF" <- REMOVE NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet" UUID="954bd22c-f96c-4b59-9445-b39dd86ac8ab" <- REMOVE-
从
/etc/hosts和/etc/resolv.conf文件中删除类似的唯一信息和不需要的设置。
删除注册详情:
对于在 Red Hat Network (RHN) 上注册的虚拟机:
# rm /etc/sysconfig/rhn/systemid对于使用 Red Hat Subscription Manager (RHSM) 注册的虚拟机:
如果您不打算使用原始虚拟机:
# subscription-manager unsubscribe --all # subscription-manager unregister # subscription-manager clean如果您打算使用原始虚拟机:
# subscription-manager clean原始 RHSM 配置集保留在门户网站中,以及您的 ID 代码。要在克隆后重新激活虚拟机的 RHSM 注册,请使用以下命令:
# subscription-manager register --consumerid=71rd64fx-6216-4409-bf3a-e4b7c7bd8ac9
删除其他唯一的详情:
删除 SSH 公钥和私钥对:
# rm -rf /etc/ssh/ssh_host_example删除 LVM 设备的配置:
# rm /etc/lvm/devices/system.devices- 如果在多台计算机上运行,删除任何其他特定于应用程序的标识符或配置可能会导致冲突。
删除
gnome-initial-setup-done文件,将虚拟机配置为在下次引导时运行配置向导:# rm ~/.config/gnome-initial-setup-done请注意,在下次引导时运行的向导取决于从虚拟机中删除的配置。另外,在克隆的第一次引导过程中,更改主机名以避免重复问题。