Skip to content

vSphere OVF 模板批量部署实战:从内容库到生产虚拟机

vSphere OVF 模板批量部署实战:从内容库到生产虚拟机示意图

基于已上传的 Ubuntu 22.04 OVF 模板,快速批量部署 K8s 节点,仅需修改 IP 即可投入使用

在上一篇文章中,我们详细介绍了如何将虚拟机克隆为 OVF 模板并上传到 R2 对象存储。今天,我们将实操演示如何从内容库部署虚拟机,实现 6-12 分钟快速交付一台配置完好的 Ubuntu 服务器

本文将从 内容库导入 OVF部署虚拟机修改 IP 地址验证 SSH 登录 全流程演示,最终在 kubernetes 资源池中成功创建 k8s-infra-221 节点。


一、将 OVF 模板导入内容库

首先,将下载的 OVF 模板文件导入到 vSphere 内容库中,以便后续批量部署。

1. 进入内容库导入界面

在 vSphere Client 中,进入内容库 template,点击 “操作”“导入项目”

图1 内容库导入项目入口

2. 选择本地 OVF 文件

在弹出的“导入库项目”窗口中:

选择源:点击 “本地文件”“上传文件”图2 导入库项目 - 选择本地文件

选中本地的 .ovf.vmdk.nvram 文件 图2 导入库项目 - 选择本地文件

3. 确认导入文件列表

上传完成后,系统会显示待导入的 3 个文件:

文件名说明
ubuntu22.04-server-basic-template.ovfVM 硬件配置描述文件
ubuntu22.04-server-basic-template-1.vmdk虚拟磁盘文件(2.36 GB)
ubuntu22.04-server-basic-template-2.nvramUEFI 固件设置

项目名称自动识别为 ubuntu22.04-server-basic-template,目标库为 template

图3 导入库项目 - 文件列表确认

4. 监控导入任务

点击“导入”后,vCenter 会在后台执行文件上传和项目创建任务。在任务控制台中可以看到:

任务名称状态说明
将文件上载到库项目已完成OVF 文件上传到内容库存储
创建库项目已完成在内容库中创建模板项目

整个导入过程约 2-3 分钟(取决于网络带宽):

图4 导入任务执行状态

5. 验证导入结果

导入完成后,进入内容库 template“OVF 和 OVA 模板” 选项卡,可以看到新导入的模板:

  • 名称ubuntu22.04-server-basic-template
  • 类型:OVF 模板
  • 大小:5.53 GB(精简置备格式)
  • 客户机操作系统:Ubuntu Linux (64-bit)

图5 导入后的模板详情

二、基于内容库创建虚拟机

模板导入成功后,即可从内容库部署虚拟机。本次演示将在 kubernetes 资源池中创建 k8s-infra-221

1. 进入部署入口

“主机和集群” 视图中,右键点击目标资源池(这里是 kubernetes),选择 “部署 OVF 模板”

图6 资源池右键菜单 - 部署 OVF 模板

2. 选择创建类型

选择 “从模板部署”,然后点击“下一页”:

图7 选择创建类型

3. 选择模板

在模板列表中,选择我们刚导入的 ubuntu22.04-server-basic-template(位于库 template 中):

图8 选择 OVF 模板

4. 设置名称和位置

指定虚拟机名称和文件夹位置:

  • 虚拟机名称k8s-infra-221(按集群命名规范)
  • 位置:选择 Datacenter 根目录

图9 设置虚拟机名称和文件夹

5. 选择计算资源

选择目标资源池或主机。本次选择 kubernetes 资源池,兼容性检查通过:

图10 选择计算资源

6. 查看详细信息

这一步会显示 OVF 软件包的高级配置信息:

配置项
发布者证书不存在(内部模板,无签名)
描述Installation is based on the Ubuntu Server method.
磁盘大小60.0 GB(厚置备延迟置零)

点击“下一页”接受高级配置选项:

图11 查看 OVF 详细信息

注意:如果出现“发布者证书不存在”的提示,因为是内部自建模板,直接忽略即可。

7. 关键配置:disk.EnableUUID = TRUE

在 OVF 部署向导的 “查看详细信息” 步骤中,有一个容易被忽视但极其重要的高级参数 —— disk.EnableUUID = TRUE

这个参数是做什么的?

维度说明
作用让虚拟机中的操作系统能够直接访问物理磁盘的 UUID,而非虚拟化层生成的虚拟标识符
默认值FALSE(vSphere 默认不启用)
影响范围磁盘识别、持久化存储、集群故障切换

为什么一定要设置为 TRUE?

在以下场景中,必须启用 disk.EnableUUID = TRUE,否则会导致严重问题:

场景不启用的后果
K8s 集群 + vSphere CSI持久卷(PV)无法正确挂载,Pod 无法使用 vSphere 存储类
物理到虚拟(P2V)迁移迁移后的系统可能无法正确识别磁盘,导致引导失败
跨主机 vMotion磁盘标识不一致,可能导致数据访问异常
依赖磁盘 UUID 的应用如 Oracle ASM、某些数据库集群,会因 UUID 变化而报错

本次模板的配置

在本次部署中,disk.EnableUUID = TRUE 已作为高级配置项包含在 OVF 模板中,部署时会自动应用:

conf
disk.EnableUUID = TRUE

你可以在 OVF 部署向导的 “查看详细信息” 页面中,滚动查看高级配置列表,确认该参数已包含在内:

图11.5 查看 OVF 高级配置 - disk.EnableUUID

验证方法:虚拟机部署完成后,SSH 登录到系统,执行 ls -l /dev/disk/by-id/,如果能看到类似 scsi-36000c29... 的磁盘标识,则说明 UUID 功能已生效。

最佳实践建议

建议说明
模板制作时预先配置在制作 OVF 模板前,在源虚拟机的“高级参数”中添加 disk.EnableUUID = TRUE,后续所有基于该模板部署的 VM 都会自动继承
已部署的 VM 手动添加编辑虚拟机设置 → 虚拟机选项 → 高级 → 配置参数 → 添加参数 disk.EnableUUID = TRUE,需要重启 VM 生效

8. 选择存储

选择虚拟磁盘的存储位置和格式:

配置项本次选择
数据存储NVMe_2TB_Storage(高性能存储)
虚拟磁盘格式厚置备延迟置零(生产环境推荐)

图12 选择存储

关于磁盘格式选择

  • 厚置备延迟置零:预分配全部空间,性能最佳,适合生产环境
  • 精简置备:按需分配,节省存储空间,适合 Homelab

9. 选择网络

配置网络映射,源网络 VM Network 映射到目标网络 VM Network

  • IP 分配:静态 - 手动(后续在 VM 内部配置)
  • IP 协议:IPv4

图13 选择网络

10. 确认配置并完成

最后一步,检查所有配置项,确认无误后点击 “完成”

配置项
名称k8s-infra-221
模板ubuntu22.04-server-basic-template
计算资源kubernetes
存储NVMe_2TB_Storage(厚置备延迟置零)
网络VM Network

图14 确认配置

11. 监控部署任务

点击“完成”后,vCenter 会在后台执行部署任务。在任务控制台中可以看到:

任务名称状态说明
将 OVF 软件包从内容库部署到资源池已完成主部署任务
部署 OVF 模板已完成OVF 实例化
传输文件已完成磁盘文件传输到目标存储

整个部署过程约 2-3 分钟

图15 部署任务控制台

三、验证部署结果

部署完成后,在资源池中可以看到新创建的虚拟机 k8s-infra-221,状态为 “已关闭电源”

图16 打开电源

1. 启动虚拟机

右键点击 k8s-infra-221“电源”“打开电源” 或点击 “打开电源” 按钮。启动后,状态变为 “已打开电源”

图16 打开电源

2. 登录控制台确认

在虚拟机详情页面,点击 “启动 WEB 控制台”

图17 启动 WEB 控制台

使用默认凭据 root/fishfinal 登录到系统

图18 VM 控制台登录

登录后可以看到:

  • 系统版本:Ubuntu 22.04.5 LTS
  • 内核版本:5.15.0-187-generic
  • IPv4 地址:192.168.0.220(模板默认 IP)

3. 验证预配置

执行 ifconfig 确认网络配置:

图19 验证网络配置

四、修改静态 IP 地址

模板默认 IP 为 192.168.0.220,如果要在同一网络中部署多台虚拟机,必须修改 IP 以避免冲突。

1. 编辑 netplan 配置文件

bash
vim /etc/netplan/00-installer-config.yaml

addresses 中的 IP 从 192.168.0.220/24 修改为 192.168.0.221/24

图20 修改 netplan 配置文件

2. 应用网络配置

bash
netplan apply

图21 应用网络配置

3. 验证新 IP

执行 ifconfig 确认 IP 已变更为 192.168.0.221

图22 验证新 IP

五、验证 SSH 远程登录

从本地机器 SSH 连接到新虚拟机,验证远程访问是否正常:

输入密码 fishfinal,成功登录:

图23 SSH 远程登录验证

至此,从 OVF 模板批量部署 Ubuntu 22.04 虚拟机的完整流程已全部验证通过!🎉

六、批量部署的优势总结

对比维度全新安装OVF 模板部署
耗时50-70 分钟6-12 分钟
人工干预大量手动配置仅需修改 IP
一致性容易产生环境差异100% 一致
批量能力逐台安装并行批量部署
预配置root/SSH/软件包/别名全预装

七、下一步建议

序号建议操作说明
1修改默认密码passwd root 更改默认密码
2创建普通用户生产环境建议使用非 root 用户操作
3配置 SSH 密钥禁用密码登录,改用密钥认证提高安全性
4创建快照部署完成后创建快照,作为新基线
5加入 K8s 集群根据集群需求执行 kubeadm join

结语

通过本文的实操演示,你已经掌握了 从内容库 OVF 模板快速部署虚拟机 的完整流程:

  1. ✅ 将 OVF 模板导入内容库
  2. ✅ 从内容库部署虚拟机
  3. ✅ 启动并验证预配置
  4. ✅ 修改静态 IP 地址
  5. ✅ SSH 远程登录验证

这套流程让 批量部署 Ubuntu 22.04 节点变得像复制粘贴一样简单,无论是 K8s 集群扩容、开发环境搭建,还是 Homelab 快速重建,都能在 10 分钟内完成交付

相关阅读推荐

最后更新2026/08/16 14:08
如果你觉得这篇文章有帮助,或者想聊聊技术、工作,欢迎通过下面方式联系我:
contact fishfinal