PVE 创建 Debian 12 模板

发表于 2025-08-13 22:40:42 分类于 Linux运维 阅读量 257

🚀 在 PVE 上创建 Debian 12 模板

本文记录了如何在 Proxmox VE(PVE)中创建一个 Debian 12 Cloud-init 模板,方便后续快速批量创建虚拟机。


1️⃣ 下载镜像和创建虚拟机

# 下载 Debian 12 Cloud 镜像
wget https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2

# 定义虚拟机 ID
VM_ID=7777

# 创建 2 核 2G 虚拟机
qm create $VM_ID --memory 2048 --core 2 --name debian12 --net0 virtio,bridge=vmbr0

# 导入磁盘到 local
qm importdisk $VM_ID debian-12-generic-amd64.qcow2 local

# 设置 SCSI 控制器和磁盘
qm set $VM_ID --scsihw virtio-scsi-pci --scsi0 local:$VM_ID/vm-$VM_ID-disk-0.raw

# 调整磁盘为 10GB
qm resize $VM_ID scsi0 10G

# 添加 cloud-init 设备
qm set $VM_ID --ide0 local:cloudinit

# 设置启动顺序
qm set $VM_ID --boot c --bootdisk scsi0

# 启用 QEMU Guest Agent(可选)
# 作用:开启后,Proxmox 可以通过 Guest Agent 与虚拟机内部通信,
#       实现安全关机、获取虚拟机 IP、做一致性快照等功能。
#       注意:虚拟机内必须先安装并启动 qemu-guest-agent 服务才能生效。
qm set ${VM_ID} --agent enabled=1

# 配置默认 cloud-init
qm set $VM_ID --ipconfig0 ip=dhcp --ciupgrade 0 --ciuser "root" --cipassword "root"

# 启动虚拟机
qm start $VM_ID

2️⃣ 启动虚拟机后初始化(VNC 连接执行)

# 开启 root 密码登录 SSH
sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config
sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config
service ssh restart

# 更换 apt 源为中科大源
sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/mirrors/debian*

# 更新软件
apt update
apt upgrade -y

# 启用qemu-guest-agent
apt install qemu-guest-agent -y
systemctl enable --now qemu-guest-agent

# 设置时区为上海
timedatectl set-timezone Asia/Shanghai

# 清理 machine-id(避免克隆 VM 获取相同 IP)
cp -f /dev/null /etc/machine-id

# 清理历史命令
rm -rf ~/.bash_history && history -c

3️⃣ 转换为模板

qm template ${VM_ID}

后续虚拟机创建后可通过以下命令获取虚拟机等网络信息

qm guest cmd ${VM_ID} network-get-interfaces

参考来源