8.3. 上传 VMDK 镜像并在 vSphere 中创建 RHEL 虚拟机
在创建和配置镜像后,您可以使用 CLI 将它部署到 VMware vSphere 中,并创建虚拟机并登录到它。
先决条件
-
已使用
cloud-init
工具配置了用于访问已部署系统的凭证。请参阅配置凭证以访问部署的系统。 通过在环境中设置以下值,您在环境中使用以下值配置了
govc
VMware CLI 工具客户端:GOVC_URL GOVC_DATACENTER GOVC_FOLDER GOVC_DATASTORE GOVC_RESOURCE_POOL GOVC_NETWORK
流程
将
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; })
使用
metadata.yaml
和userdata.yaml
文件在 vSphere 上启动镜像:将
.vmdk
镜像导入到 vSphere :$ govc import.vmdk ./composer-api.vmdk foldername
在 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
更改虚拟机以添加
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"
打开虚拟机:
govc vm.power -on vmname
检索虚拟机 IP 地址:
HOST=$(govc vm.ip vmname)
使用
cloud-init
文件配置中指定的用户数据,使用 SSH 登录到虚拟机:$ ssh admin@HOST
其它资源