10.2. 从 KVM 客户机镜像创建虚拟机
RHEL 镜像构建器已安装并启用了 cloud-init。
先决条件
-
您已使用 RHEL 镜像构建器创建了一个
.qcow2镜像。 -
您已在系统上安装了
qemu-kvm软件包。您可以检查/dev/kvm设备是否在您的系统上可用,并且 BIOS 中是否已启用了虚拟化功能。 -
在您的系统上已安装了
libvirt和virt-install软件包。 -
您有
genisoimage工具,其由xorriso软件包提供,已安装在您的系统上。
流程
-
将您使用 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.comssh_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-10-x86_64-kvm.qcow2,device=disk,bus=virtio,format=qcow2 \ --disk cloud-init.iso,device=cdrom \ --os-variant rhel 10 \ --virt-type kvm \ --graphics none \ --import- --graphics none - 表示它是一个无头的 RHEL 10 虚拟机。
- --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 10 (Ootpa) Kernel 4.18.0-221.el8.x86_64 on an x86_64
验证
引导完成后,虚拟机会显示文本登录界面。要登录到虚拟机的本地控制台,请使用 user-data 文件中的详情:
-
输入
admin作为用户名,然后按 键。 输入
password作为密码,然后按 键。登录身份验证完成后,您可以使用 CLI 访问虚拟机。