8.2. 从 KVM 客户机镜像创建虚拟机

使用 RHEL 镜像构建器,您可以构建 .qcow2 镜像,并使用 KVM 客户机镜像创建虚拟机。使用 RHEL 镜像构建器创建的 KVM 客户机镜像已安装并启用了 cloud-init

前提条件

  • 您已使用 RHEL 镜像构建器创建了一个 .qcow2 镜像。请参阅在 web 控制台界面中创建一个蓝图。
  • 您已在系统上安装了 qemu-kvm 软件包。您可以检查 /dev/kvm 设备是否在您的系统上可用,并且 BIOS 中是否已启用了虚拟化功能。
  • 在您的系统上已安装了 libvirtvirt-install 软件包。
  • xorriso 软件包提供的 genisoimage 工具已安装在您的系统上。

流程

  1. 将您使用 RHEL 镜像构建器创建的 .qcow2 镜像移到 /var/lib/libvirt/images/ 目录中。
  2. 创建一个目录,如 cloudinitiso ,并导航到这个新创建的目录:

    $ mkdir cloudinitiso
    $ cd cloudinitiso
  3. 创建一个名为 meta-data 的文件。在此文件中添加以下信息:

    instance-id: citest
    local-hostname: vmname
  4. 创建一个名为 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 公钥。

  5. 使用 genisoimage 工具创建一个包含 user-datameta-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)
  6. 使用 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。
  7. 虚拟机安装开始:

    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 文件中的用户详情:

  1. 输入 admin 作为用户名,然后按 Enter 键。
  2. 输入 password 作为密码,然后按 Enter 键。

    登录身份验证完成后,您可以使用 CLI 访问虚拟机。