Proxmox使用Cloud-Init制作Debian10系统模板

by LALA

荒岛 / 2019-08-04 07:39

Cloud-Init这玩意的文档说实话写的跟屎一样,不是给人看的。之前Proxmox对这个Cloud-Init的支持也还有很多BUG,现在貌似都修的差不多了,可以上手试试了~

使用Cloud-Init之后的方便之处:

1.可以自己设置系统用户密码,或者公钥验证。

2.小鸡硬盘可以在现有分区上自动扩容,不需要去创建新的分区。(这个功能简直太关键了)

3.可以快速配置小鸡网络。

4.自动更新系统到最新版。

总而言之就是批量部署虚拟机的时候效率会大大的提高~

环境:PVE5.4-13
模板系统:debian-10.0.0-amd64-netinst

首先下载Debian10镜像:

cd /var/lib/vz/template/iso  wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.0.0-amd64-netinst.iso

创建虚拟机这里就不多说了,只有一个点要注意一下,用来制作模板的系统,硬盘能给小就给小,我这边分了5GB:

虚拟机创建完毕之后不要马上开机,现在需要添加一个CloudInit设备:

总线设备IDE,顺序0:

然后开机按照正常流程安装系统,到网络配置这里,我是选择的手动:

我给这台小鸡分配了一个尾号为165IP:

继续安装按流程走,到硬盘分区这里选择手动:

只创建一个分区,把5G硬盘的全部容量都划分到/,这里注意要把Bootable flag开启,因为我们没有/boot分区:

模板系统能精简就精简,所以最后让我们选择安装组件的时候,只装一个SSH服务:

系统安装完成,开机之后使用VNC登录进来,不要去用SSH,原因我懒得说。。

登进去后在这台小鸡里面安装CloudInit:

apt -y update  apt -y install cloud-init

然后编辑配置文件:

nano /etc/cloud/cloud.cfg

删除这些没用的配置,注意这里是删除如下的配置,不是添加:

cloud_config_modules:   - snap   - snap_config   - ubuntu-advantage   - disable-ec2-metadata   - byobu    cloud_final_modules:   - snappy   - fan   - landscape   - lxd   - puppet   - chef   - mcollective   - salt-minion   - rightscale_userdata

注:有些是之前我在Ubuntu18.04上面的配置,Debian10没有就不用管。

如图所示:

最后清理系统/删除安装系统时创建的用户/删除登录记录/删除命令记录:

apt clean  userdel -r imlala  echo > /var/log/wtmp  history -c

回到Proxmox面板上点关机,把这台虚拟机关掉,然后右键转换成模板。

这样一个Debian10的系统模板就做好了,现在我们可以右键点击克隆,模式选择完整克隆:

之后我们可以在这里更改这台克隆机器的CPU/内存/硬盘等配置,这里我把硬盘增加到了50GB:

点击Cloud-Init设置这台小鸡的用户/密码:

设置这台小鸡的网络,之前模板系统是165,为验证Cloud-Init是否能够正常工作,这里我把它配置为166,然后再配了一个IPv6:

全部设置好了之后点击“重生成映像”:

现在打开这台虚拟机,在VNC中我们可以看到Cloud-Init已经在按我们之前的配置去设置这台机器的一些信息了:

系统启动之后,尝试登录,一切正常,设置的用户能成功登录,硬盘大小能自动扩容,网络也是OK的:

LALA

— 

Shared via Inoreader