第 7 章 部署自定义镜像
为 VMWare vSphere 私有云创建自定义镜像后,您可以将镜像部署到 VMware vSphere。对于 Guest 镜像(.qcow2
)和安装程序(.iso
),您可以下载这些镜像并将其部署到虚拟机。
7.1. 上传 VMDK 镜像并在 vSphere 中创建 RHEL 虚拟机
创建镜像后,您可以使用 CLI 将其部署到 VMware vSphere。然后,您可以创建一个虚拟机并登录它。
先决条件
您已配置了
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
其它资源