PVE 中 cloud-init 使用指北

PVE 中 cloud-init 使用指北

蓝枫
2025-08-21 / 1 评论 / 16 阅读 / 正在检测是否收录...

在 PVE 中使用 LXC 容器可以快速创建 Linux 环境,并且能轻松设置好 IP 和 SSH 密钥。但用虚拟机搭建 Linux 环境的时候,每次都得登录进去手动修改 SSH 密钥、IP 地址这些配置,有点麻烦。有没有办法让虚拟机用起来也能这么轻松呢?兄弟,有的!办法就是用 cloud-init 来自动配置。

cloud-init 简介

Cloud-init 是一种用于云实例自动化初始化的工具,它在系统启动时执行一系列任务,如设置主机名、安装软件包、运行脚本等。Cloud-init 通过读取用户数据、元数据和供应商数据来执行这些任务,这些数据可以通过 YAML 文件提供。

PVE 使用 cloud-init 要点

相比通常创建的虚拟机,想要使用 cloud-init,需要注意以下要点

完整操作记录

一、下载镜像

  1. 找到你需要的镜像链接
    打开南京大学镜像站,找到符合要求的镜像,右键复制链接。

  1. 打开 PVE 输入以下命令下载
    下载镜像
    点击右上角“Shell”,新窗口输入wget + 镜像链接即可下来镜像到 pve。

    wget https://mirrors.nju.edu.cn/debian-cdimage/cloud/bookworm/latest/debian-12-genericcloud-amd64.qcow2


    ‘debian-12-genericcloud-amd64.qcow2’ saved [345833472/345833472]说明下载完毕
    下载完毕

二、新建虚拟机

点击右上角“创建虚拟机”各参数设置如下

三、导入镜像

  1. PVE 中输入以下指令,将刚刚下载的镜像转换为虚拟硬盘

    qm importdisk 404 debian-12-generic-amd64.qcow2 local-lvm


导入硬盘
见到 successfully imported disk 'local-lvm:vm-404-disk-0' 说明导入成功
导入成功

  1. 进入虚拟机的硬件设置,可以看到,多了一个“未使用的磁盘”双击后添加即可
    添加硬盘
  2. 可以看到硬盘只有 3 GB,只需要选定硬盘后选择“磁盘操作”即可调整大小,可以按需增加大小。也可以等有需要再增加大小。
    调整硬盘
  3. 设置磁盘为系统盘,进入“选项-引导顺序”,勾选刚刚的硬盘,并拖动顺序到第一位
    引导顺序
    如下图所示
    引导顺序2

四、设置 cloud-init

  1. 添加 cloud-init 设备,进入虚拟机的“设备”,点击添加,添加“CloudInit 设备”
    添加设备
    cloud-init

  1. 此时 Cloud-Init 可以点击了。点击进入,按需修改“用户名、密码、IP配置等信息”然后点击“重新生成镜像”即应用生效
    cloud-init设置

五、启动虚拟机

  1. 点击“启动”即可启动虚拟机,然后点击“控制台”即可直接进入虚拟机控制界面,开机后会自动加载 Cloud-Init
    metpa82g.png
    看到上图信息,说明 Cloud-Init 运行完毕,可以输入用户名密码直接使用。
  2. 安装 QEMU Guest Agent,输入以下指令安装

    apt update #如果 Cloud-Init 升级程序包为“是” 则无需该指令,直接运行安装指令即可
    apt install qemu-guest-agent -y
  3. 关闭虚拟机
    通过以下指令即可关闭虚拟机,为转换为模版做准备。

    poweroff

六、转化为模版

  1. 将虚拟机关闭之后,将虚拟机转换为模版
    metq6qbm.png
    此时就有一个随时可以克隆快速使用的 linux 虚拟机了
  2. 克隆虚拟机,然后通过 cloud-init 即可快速初始化,快速创建虚拟机使用
    metqafkd.png
    链接克隆,不占用额外磁盘空间、但是IO性能较差、适合临时测试
    完整克隆,完成复制硬盘,适合生产使用
0

评论 (1)

取消
  1. 头像
    trdt
    Windows 10 · Google Chrome

    表情

    回复