从一台二手服务器开始:构建私有 AI 平台的真实实践记录(二)
本文记录了我在一台已稳定运行的 PVE(Proxmox VE)环境中,制作 Ubuntu 24.04 Server 标准模板的完整实践过程。文章不重复物理服务器与 PVE 的安装步骤,而是从真实运维视角出发,聚焦虚拟机模板的设计思路、关键配置选择以及模板封印细节,力求构建一个可长期复用、可扩展的基础节点起点。该模板将作为后续 Docker、Kubernetes 以及私有 AI 平台实践的统一基础,
——在 PVE 中制作 Ubuntu 24.04 Server 标准模板
为什么这篇不再讲 PVE 安装
在上一篇文章中,我提到这台二手服务器将作为我后续构建私有 AI 平台的基础环境
需要说明的是:PVE(Proxmox VE)本身早已完成部署,并且已经稳定运行了一段时间
因此,这里我刻意不再回头补写物理服务器安装 PVE 的过程,原因:
-
PVE 安装是一次性工作
在真实环境中,PVE 一旦稳定运行,可能几年都不会重装 -
该阶段资料高度同质化
网上已经有大量成熟的安装流程等内容,重复记录意义不大 -
真正反复被使用的不是 PVE 本身,而是虚拟机模板
运维工作的长期价值,来自于:-
模板是否规范
-
节点是否可复制
-
后续扩展是否可控
-
所以,这一篇直接从“在已有 PVE 环境中,构建第一个 Ubuntu 标准模板”开始。
一、为什么我要先做 Ubuntu 模板,而不是直接装系统用?
在虚拟化环境中,有一种非常常见、但长期一定会踩坑的做法:
装好系统 → 直接当业务节点用
短期省事,长期代价极高
我这次选择先做模板,核心原因只有一个:
我不是在装一台 Ubuntu,而是在定义“未来所有节点的起点”
模板能解决的问题包括:
-
所有节点起点一致
-
避免人为操作差异
-
节点规模扩大时,维护成本不会线性上升
-
为 K8s / AI 环境打好“地基”
一句话总结:
模板不是为了快,模板是为了以后不痛苦
二、在 PVE 中创建 Ubuntu 24.04 Server 虚拟机
1. 系统镜像选择
我选择的是:
-
Ubuntu 24.04 LTS Server
-
Live Server(无 GUI)
选择原因非常直接:
-
LTS 生命周期长
-
Server 版足够干净
-
Docker / K8s / AI 官方优先支持
-
不引入无关图形组件
2. 虚拟机关键参数(只列对模板有长期影响的)
-
BIOS:UEFI(OVMF)
-
Machine:q35
-
磁盘:SCSI,32G
-
CPU:host
-
网络:VirtIO
-
启用 QEMU Guest Agent
这些配置并不追求极限性能,而是:
稳定、兼容、可长期复用
三、Ubuntu 安装过程中的关键选择说明
1. 存储方案:简单就是最优解
安装时选择:
-
使用整个磁盘
-
不使用 LVM
-
文件系统:ext4
最终结构为:
-
/boot/efi(UEFI 启动) -
/根分区(ext4)
理由很明确:
-
PVE 已经提供存储抽象
-
LVM 在模板中收益有限
-
简单结构更利于长期维护
2. 用户与主机名:模板阶段必须“去个性化”
-
用户名:
ubuntu -
主机名:
ubuntu-template
模板阶段的主机名,必须是中性、可复用的
真实业务节点的主机名,应在克隆之后手动设置
3. 网络策略:模板阶段坚持 DHCP
在模板中,我刻意不配置静态 IP:
如果模板里写死 IP:
-
克隆多台节点会直接冲突
-
问题非常隐蔽,排查成本极高
正确策略是:
-
模板使用 DHCP
-
克隆后再配置静态 IP
四、系统首次启动后的基础加固(模板级)
以前学习云计算时,学的都是centos,改用ubuntu后多少还有一些不习惯
新建后不让使用root登录,只能在命令前加sudo这个怎么解决,求助!!!
系统安装完成后,并不等于可以直接转模板
还需要完成一组模板级基础操作
1. 系统更新
sudo apt update
sudo apt upgrade -y
模板必须处于最新补丁状态。
2. 安装基础运维工具
sudo apt install -y \
curl wget vim git htop net-tools \
ca-certificates gnupg lsb-release
这些工具覆盖:
-
网络排障
-
配置编辑
-
版本识别
-
日常运维脚本需求
3. 安装并启用 QEMU Guest Agent(PVE 必装)
sudo apt install -y qemu-guest-agent
sudo systemctl enable --now qemu-guest-agent
这是 PVE 虚拟机的标配组件,作用包括:
-
正确显示 IP
-
支持优雅关机
-
支持备份与克隆
没有它的模板,在运维层面是不完整的
五、模板封印:最容易被忽略,但最关键的一步
1. 清理 machine-id
sudo truncate -s 0 /etc/machine-id
sudo rm -f /var/lib/dbus/machine-id
machine-id 是 Linux 节点的唯一标识
模板中必须清空,否则克隆节点会身份冲突
2. 清理 SSH Host Key
sudo rm -f /etc/ssh/ssh_host_*
避免所有克隆节点使用相同的 SSH 指纹
3. 清理系统缓存并关机
sudo apt autoremove -y
sudo apt clean
sudo shutdown now
随后在 PVE Web 界面中,将该虚拟机转换为模板
六、至此,我得到了什么?
一个:
-
干净
-
规范
-
可无限克隆
-
与 PVE 深度适配
的 Ubuntu 24.04 Server 标准模板
它不是为了“现在用”
而是为了未来所有节点:
-
Docker
-
K8s
-
AI 计算
-
各类实验与项目
都从同一个确定的起点出发
写在最后
很多人在学习运维时,只关注“装了什么软件”
却忽略了一个事实:
系统在虚拟化环境中,是被复制的,而不是被长期手工维护的
学习记录声明
本文内容仅为本人在学习与实践过程中的阶段性记录,用于知识整理与经验分享,不构成任何形式的操作建议或生产指导
不同硬件环境、版本与配置差异较大,请读者根据自身情况独立判断并自行承担相关风险
如需在生产环境或关键系统中使用,请务必查阅官方文档并进行充分验证
更多推荐



所有评论(0)