8.3. 上传 VMDK 镜像并在 vSphere 中创建 RHEL 虚拟机
在创建和配置镜像后,您可以使用 CLI 将它部署到 VMware vSphere 中,并创建虚拟机并登录到它。
先决条件
-
已使用
cloud-init
工具配置了用于访问已部署系统的凭证。请参阅配置凭证以访问部署的系统。 通过在环境中设置以下值,您在环境中使用以下值配置了
govc
VMware CLI 工具客户端:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
将
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
配置: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.change -vm vmname \ -e guestinfo.metadata="${METADATA}" \ -e guestinfo.metadata.encoding="gzip+base64" \ -e guestinfo.userdata="${USERDATA}" \ -e guestinfo.userdata.encoding="gzip+base64"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 打开虚拟机:
govc vm.power -on vmname
govc vm.power -on vmname
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