8.2. 从 KVM 客户机镜像创建虚拟机
使用 RHEL 镜像构建器,您可以构建 .qcow2
镜像,并使用 KVM 客户机镜像创建虚拟机。使用 RHEL 镜像构建器创建的 KVM 客户机镜像已安装并启用了 cloud-init
。
前提条件
-
您已使用 RHEL 镜像构建器创建了一个
.qcow2
镜像。请参阅在 web 控制台界面中创建一个蓝图。 -
在您的系统上已安装了
qemu-kvm
软件包。您可以检查/dev/kvm
设备是否在您的系统上可用,并且 BIOS 中是否已启用了虚拟化功能。 -
在您的系统上已安装了
libvirt
和virt-install
软件包。 -
xorriso
软件包提供的genisoimage
工具已安装在您的系统上。
流程
-
将您使用 RHEL 镜像构建器创建的
.qcow2
镜像移到/var/lib/libvirt/images/
目录中。 创建一个目录,如
cloudinitiso
,并导航到这个新创建的目录:$ mkdir cloudinitiso $ cd cloudinitiso
创建一个名为
meta-data
的文件。在此文件中添加以下信息:instance-id: citest local-hostname: vmname
创建一个名为
user-data
的文件。在文件中添加以下信息:#cloud-config user: admin password: password chpasswd: {expire: False} ssh_pwauth: True ssh_authorized_keys: - ssh-rsa AAA...fhHQ== your.email@example.com
ssh_authorized_keys
是您的 SSH 公钥。您可以在~/.ssh/<id_rsa.pub>\
中找到您的 SSH 公钥。使用
genisoimage
工具创建一个包含user-data
和meta-data
文件的 ISO 镜像。# genisoimage -output cloud-init.iso -volid cidata -joliet -rock user-data meta-data I: -input-charset not specified, using utf-8 (detected in locale settings) Total translation table size: 0 Total rockridge attributes bytes: 331 Total directory bytes: 0 Path table size(bytes): 10 Max brk space used 0 183 extents written (0 MB)
使用
virt-install
命令从 KVM 客户机映像创建一个新虚拟机。将您在第 4 步中创建的 ISO 镜像作为虚拟机镜像的附件。# virt-install \ --memory 4096 \ --vcpus 4 \ --name myvm \ --disk rhel-9-x86_64-kvm.qcow2,device=disk,bus=virtio,format=qcow2 \ --disk cloud-init.iso,device=cdrom \ --os-variant rhel 9 \ --virt-type kvm \ --graphics none \ --import
- --graphics none - 表示它是一个无头的 RHEL 9 虚拟机。
- --vcpus 4 - 表示它使用 4 个虚拟 CPU。
- --memory 4096 - 表示它使用 4096 MB RAM。
虚拟机安装开始:
Starting install... Connected to domain mytestcivm ... [ OK ] Started Execute cloud user/final scripts. [ OK ] Reached target Cloud-init target. Red Hat Enterprise Linux 9 (Ootpa) Kernel 4.18.0-221.el8.x86_64 on an x86_64
验证
引导完成后,虚拟机会显示文本登录界面。要登录到虚拟机的本地控制台,请使用 user-data
文件中的详情:
-
输入
admin
作为用户名,然后按 键。 输入
password
作为密码,然后按 键。登录身份验证完成后,您可以使用 CLI 访问虚拟机。