Proxmox VE 使用 CloudInit (第一篇)
|字数总计:1k|阅读时长:4分钟|阅读量:
前言
注 > :CloudInit技术并非只能在Proxmox VE平台使用,只是本文作者基于Proxmox VE平台。
在常规环境中,运维人员首先要耗时安装一个虚拟机,在虚拟机创建完成后,手动登录虚拟机,进行一系列的配置,如:用户、密码、ip等。这样的操作,对于运维人员来说,是一件非常繁琐的事情。
CloudInit技术是一种能够在虚拟机启动时,自动配置虚拟机的各项参数的技术。在Proxmox VE平台上,可以通过CloudInit技术,实现虚拟机的用户、密码、ip等参数的自动配置。能够通过一些调整,实现虚拟机磁盘和分区自动扩容。
CloudInit技术
CloudInit 是一个开源的镜像初始化程序,通过它可以轻松实现弹性伸缩、快速配置。CloudInit 通过在虚拟机启动时,读取配置文件,实现虚拟机的自动配置。
参考CloudInit官网:https://cloudinit.readthedocs.io/en/latest/
参考Proxmox VE官网:https://pve.proxmox.com/wiki/Cloud-Init_Support
官方示例:https://pve.proxmox.com/wiki/Cloud-Init_Support#_example_cloud_init_configuration
当然,你需要先下载能够支持CloudInit的镜像,然后在Proxmox VE平台上创建虚拟机时,选择CloudInit镜像,就可以实现虚拟机的自动配置。
这是官方CloudInit镜像下载列表:
- 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://download.opensuse.org/repositories/Cloud:/Images:/
Proxmox VE平台上使用CloudInit
- 下载CloudInit镜像,本文以
Ubunut20.04
为例,如下图- 进入ubuntu官网:http://cloud-images.ubuntu.com/releases/,选择
20.04
版本。
- 选择最新的版本,最新的版本更新了依赖,如下图
- 根据自己的平台,选择
vmdk
格式的镜像,这里选择的是amd64平台,如下图
- 进入ubuntu官网:http://cloud-images.ubuntu.com/releases/,选择
- 创建一个虚拟机,只保留基本配置,删除磁盘。
- 添加 USB设备、串口设备、CloudInit Drive设备。如下图
- 导入CloudInit镜像到Proxmox VE平台
~ ❯ with root@pve at 06:30:17 PM
❯ qm importdisk 100 ubuntu-20.04-server-cloudimg-amd64.vmdk local-lvm --format=qcow2
100: local-lvm:vm-100-disk-0.qcow2
~ ❯ with root@pve at 06:30:21 PM - 使用
sata/scsi
挂载刚刚导入的磁盘 - 调整引导顺序为挂载的硬盘
- 配置CloudInit,如下图
配置虚拟机
- 使用国内加速源
~ ❯ with root@pve at 06:30:17 PM
❯ sed -i "s/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g" `grep "archive.ubuntu.com" -rl /etc/apt/sources.list`
~ ❯ with root@pve at 06:30:17 PM - 挂载新硬盘到虚拟机,重启虚拟机后挂载硬盘
~ ❯ with root@pve at 06:30:17 PM
❯ mkfs -t ext4 /dev/sdb
❯ mkdir /data
❯ mount /dev/sdb /data
❯ echo "/dev/sdb /data ext4 defaults 0 0" >> /etc/fstab
~ ❯ with root@pve at 06:30:17 PM - 编辑cloud-init配置文件,启用磁盘自动扩容
~ ❯ with root@pve at 06:30:17 PM
❯ echo "growpart:
mode: auto
devices: [/dev/sdb,/dev/sda]
ignore_growroot_disabled: false
runcmd:
- [growpart,/dev/sda,1]
- [partprobe,-s,/dev/sda1]
- [resize2fs,/dev/sda1]
- [resize2fs,/dev/sdb]" > /etc/cloud/cloud.cfg
~ ❯ with root@pve at 06:30:17 PM - 配置虚拟机网络缓冲,go-quic不进行这一步可能会报错
~ ❯ with root@pve at 06:30:17 PM
❯ sysctl -w net.core.rmem_max=2500000 >> /etc/sysctl.conf
❯ sysctl -w net.core.wmem_max=2500000 >> /etc/sysctl.conf
~ ❯ with root@pve at 06:30:17 PM - 安装其他预安装的软件,类似于
docker
、go
等,也可以安装宝塔面板并修改用户密码端口安全路径之类的,这里以安装docker
为例~ ❯ with root@pve at 06:30:17 PM
❯ apt install -y docker.io
~ ❯ with root@pve at 06:30:17 PM - 安装 qemu-guest-agent
~ ❯ with root@pve at 06:30:17 PM
❯ apt install -y qemu-guest-agent
~ ❯ with root@pve at 06:30:17 PM - 清除历史命令记录
~ ❯ with root@pve at 06:30:17 PM
❯ history -c
~ ❯ with root@pve at 06:30:17 PM - 其他的就是一些自己的配置了,像配置防火墙之类的,这里就不一一列举了。可以将这个虚拟机保存为模板,以后创建虚拟机时,选择这个模板,就可以自动配置了。
文章作者: 铁流
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Tieliu's Blog!
评论