Pve Cloud-init 构建
Cloud images下载地址
centos:
http://cloud.centos.org/centos/
ubuntu:
http://cloud-images.ubuntu.com/releases/
debian:
https://cloud.debian.org/images/cloud/OpenStack/
fedora:
https://alt.fedoraproject.org/cloud/
rehat7:
https://access.redhat.com/downloads/content/69/ver=/rhel---7/x86_64/product-downloads
opensuse:
https://software.opensuse.org/distributions/leap#JeOS-ports
创建一个虚拟机
这里的名称,会自动作为本次操作系统的计算机名称

设置虚拟机名称

不使用任何介质

勾选QEMU代理
这里默认即可,一会是要删除这个硬盘的

保持默认。
一路走下去,到完成。
先分离硬盘,再删除

分离硬盘

删除硬盘
下载并转换镜像
下载镜像,通过SSH登录到母机上;进入镜像的存放目录或者使用Web页面的下载镜像功能也可以;但是之后的转换云镜像为磁盘的操作需要命令行来完成。
如果你没有添加过额外的存储,那么默认路径在 /var/lib/vz/template/iso
目录下;以Ubuntu为例;使用 qm
命令将下载的云镜像文件转为一个磁盘文件;我这里添加了 /raid0
目录存储虚拟机和镜像文件;
bug:使用ubuntu-20.04-server-cloudimg-amd64-disk-kvm.img这个镜像或开机会提示attempting initrdless boot;所以得下载不带KVM关键字的镜像;至少这个日期版本(20211004)是有问题的。
xxxxxxxxxx
# 下载镜像
wget https://cloud-images.ubuntu.com/releases/focal/release-20211004/ubuntu-20.04-server-cloudimg-amd64.img
# 转换云镜像为虚拟磁盘
qm importdisk 104 ubuntu-20.04-server-cloudimg-amd64.img raid0 --format=qcow2
# 104 为虚拟机的ID
# raid0 为存储的名称,如果没有额外存储,则默认是local
# --format=qcow2 为转换后的格式
# 看到Successfully,转换完成
Successfully imported disk as 'unused0:raid0:104/vm-104-disk-0.qcow2'
CentOS的Cloud Image提供了qcow2格式,则无需使用--format参数
回到虚拟机“硬件”页面;多了一块“未使用的磁盘0”;双击后,点击添加。

添加新硬盘
这里初始磁盘容量比较小,可以点击磁盘“调整磁盘大小”;显示的是MB,增量的是GB。

调整磁盘大小
再点击“添加”Cloud-Init设备。

添加Cloud-Init设备
选择存储和SCSI ID为1,创建

设置添加的Cloud-Init设备
由于刚刚删除了磁盘,所以启动选项里为空,这时候需要勾选一下刚刚添加的新磁盘为启动盘。勾选“scsi0”并拖拽到第一个,或者取消其他的,只保留scsi0也可以。
光驱默认是IDE接口,可以把它删除了,重新添加为SCSI 2;选项为“不使用任何介质”。

这个时候就可以设置Cloud-Init选项了;由于我们使用的是Ubuntu,则这里不能设置用户为“root”,因为这个账户Ubuntu默认禁用;如果有需要,可以在之后的启动后开启root,再生成模板。

在继续填写SSH公钥(可以加载文件)和IP配置,这个时候网卡的Mac地址已经生成,IP配置的选项为DHCP和Static。这些就绪之后,就可以启动这个系统了。
配置模板系统
- 设置时区
xxxxxxxxxx
sudo timedatectl set-timezone Asia/Shanghai
2. 设置APT仓库源
xxxxxxxxxx
sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
3. 安装软件或更新系统
xxxxxxxxxx
# 更新源和安装常用软件
sudo apt update && sudo apt install vim bash-completion -y
# 安装qemu代理
sudo apt install qemu-guest-agent -y
sudo systemctl enable --now qemu-guest-agent
# 更新系统
sudo apt upgrade
4. 修改SSH配置;(有必要)
xxxxxxxxxx
# 开启root登录(如果需要的话;这里开启了之后Cloud-Init用户就可以设置root)
PermitRootLogin yes
# 开启密钥登录
PubkeyAuthentication yes
# 密钥路径
AuthorizedKeysFile
# 开启密码登录(默认只允许密钥登录)
PasswordAuthentication yes
# 不允许空密码登录
PermitEmptyPasswords no
# 关闭连接的DNS解析
UseDNS no
5. 清理缓存
xxxxxxxxxx
sudo apt autoclean all
6. 其他自定义配置
关机,转换为模板,就可以了。
源地址
源地址2