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
流程
创建
metadata.yaml
文件并在此文件中添加以下信息:instance-id: cloud-vm local-hostname: vmname
instance-id: cloud-vm local-hostname: vmname
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个
userdata.yam
文件,并在该文件中添加以下信息:Copy to Clipboard Copied! Toggle word wrap Toggle overflow ssh_authorized_keys
是您的 SSH 公钥。您可以在~/.ssh/id_rsa.pub
中找到 SSH 公钥。将
metadata.yaml
和userdata.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; })
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 Copied! Toggle word wrap Toggle overflow 使用
metadata.yaml
和userdata.yaml
文件在 vSphere 上启动镜像:将
.vmdk
镜像导入到 vSphere :govc import.vmdk ./composer-api.vmdk <_foldername_>
$ govc import.vmdk ./composer-api.vmdk <_foldername_>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 vSphere 中创建虚拟机而不开机:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更改虚拟机以添加 ExtraConfig 变量,即 cloud-init 配置:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检索虚拟机 IP 地址:
HOST=$(govc vm.ip vmname)
HOST=$(govc vm.ip vmname)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
连接到在其中运行容器镜像的虚拟机。如需了解更多详细信息,请参阅 连接到虚拟机。
使用
cloud-init
文件配置中指定的用户数据,使用 SSH 登录到虚拟机:ssh admin@HOST
$ ssh admin@HOST
Copy to Clipboard Copied! Toggle word wrap Toggle overflow