6.3. 部署容器镜像并在 vSphere 中创建 RHEL 虚拟机


使用 bootc-image-builder 工具从 RHEL bootc 镜像创建虚拟机磁盘(VMDK)后,您可以使用 vSphere GUI 客户端将其部署到 VMware vSphere 中。部署会创建一个虚拟机,可在引导前进行进一步自定义。

先决条件

  • 您创建了一个容器镜像。请参阅使用 bootc-image-builder 创建 QCOW2 镜像
  • 您已将容器镜像推送到一个可访问的存储库。
  • 您已配置了 govc VMware CLI 工具客户端。要使用 govc VMware CLI 工具客户端,您必须在环境中设置以下值:

    • GOVC_URL
    • GOVC_DATACENTER
    • GOVC_FOLDER
    • GOVC_DATASTORE
    • GOVC_RESOURCE_POOL
    • GOVC_NETWORK

流程

  1. 创建 metadata.yaml 文件并在此文件中添加以下信息:

    instance-id: cloud-vm
    local-hostname: vmname
    Copy to Clipboard Toggle word wrap
  2. 创建一个 userdata.yam 文件,并在该文件中添加以下信息:

    #cloud-config
    users:
    - name: admin
      sudo: "ALL=(ALL) NOPASSWD:ALL"
      ssh_authorized_keys:
      - ssh-rsa AAA...fhHQ== your.email@example.com
    Copy to Clipboard Toggle word wrap

    ssh_authorized_keys 是您的 SSH 公钥。您可以在 ~/.ssh/id_rsa.pub 中找到 SSH 公钥。

  3. metadata.yamluserdata.yaml 文件导出到环境中,使用 gzip 压缩,使用 base64 编码,如下所示:您将进一步的步骤中使用这些文件。

    export METADATA=$(gzip -c9 <metadata.yaml | { base64 -w0 2>/dev/null || base64; }) \
    USERDATA=$(gzip -c9 <userdata.yaml | { base64 -w0 2>/dev/null || base64; })
    Copy to Clipboard Toggle word wrap
  4. 使用 metadata.yamluserdata.yaml 文件在 vSphere 上启动镜像:

    1. .vmdk 镜像导入到 vSphere :

      $ govc import.vmdk ./composer-api.vmdk <_foldername_>
      Copy to Clipboard Toggle word wrap
    2. 在 vSphere 中创建虚拟机而不开机:

      govc vm.create \
      -net.adapter=vmxnet3 \
      -m=4096 -c=2 -g=rhel8_64Guest \
      -firmware=bios -disk=”foldername/composer-api.vmdk” \
      -disk.controller=ide -on=false \
      vmname
      Copy to Clipboard Toggle word wrap
    3. 更改虚拟机以添加 ExtraConfig 变量,即 cloud-init 配置:

      govc vm.change -vm vmname \
      -e guestinfo.metadata="${METADATA}" \
      -e guestinfo.metadata.encoding="gzip+base64" \
      -e guestinfo.userdata="${USERDATA}" \
      -e guestinfo.userdata.encoding="gzip+base64"
      .. Power-on the VM:
      govc vm.power -on vmname
      Copy to Clipboard Toggle word wrap
    4. 检索虚拟机 IP 地址:

      HOST=$(govc vm.ip vmname)
      Copy to Clipboard Toggle word wrap

验证

  • 连接到在其中运行容器镜像的虚拟机。如需了解更多详细信息,请参阅 连接到虚拟机。

    1. 使用 cloud-init 文件配置中指定的用户数据,使用 SSH 登录到虚拟机:

      $ ssh admin@HOST
      Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat