9.3. 使用 CLI 将 VMDK 镜像部署到 vSphere
创建镜像后,您可以使用 CLI 将其部署到 VMware vSphere。然后,您可以创建一个虚拟机并登录它。
GUI 向导不支持 cloud-init
。
先决条件
您已配置了
govc
VMware CLI 工具客户端。要使用
govc
VMware CLI 工具客户端,您必须在环境中设置以下值:GOVC_URL GOVC_DATACENTER GOVC_FOLDER GOVC_DATASTORE GOVC_RESOURCE_POOL GOVC_NETWORK
流程
-
访问您下载
.vmdk
镜像的目录。 创建一个名为
metadata.yaml
的文件。在此文件中添加以下信息:instance-id: cloud-vm local-hostname: vmname
创建一个名为
userdata.yaml
的文件。在文件中添加以下信息:#cloud-config users: - name: admin sudo: "ALL=(ALL) NOPASSWD:ALL" ssh_authorized_keys: - ssh-rsa AAA...fhHQ== your.email@example.com
-
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; })
使用
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
其它资源