9.3. 使用 CLI 将 VMDK 镜像部署到 vSphere
创建镜像后,您可以使用 CLI 将其部署到 VMware vSphere。然后,您可以创建一个虚拟机并登录它。
					GUI 向导不支持 cloud-init。
				
先决条件
- 您已配置了 - govcVMware CLI 工具客户端。- 要使用 - govcVMware CLI 工具客户端,您必须在环境中设置以下值:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
流程
- 
						访问您下载 .vmdk镜像的目录。
- 创建一个名为 - 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.yaml的文件。在文件中添加以下信息:- 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配置:- 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