# Proxmox 建立 Cloud init Template


# 甚麼是 Cloud Init Template

是一種 PVE 特殊配置文件,主要用在 PVE 自動化 VM 與初始化過程,Cloud init 是一個開源專案,允許使用者透過簡單的文件配置來配置 VM/LXC 的各種參數,如網路、SSH Key 等。


# 自製 Cloud init Template


# 下載 Ubuntu Base Image

到 PVE 節點主機

1
wget https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img

# 安裝 Package

1
2
3
4
# 安裝相關 Tools
sudo apt update -y && sudo apt install libguestfs-tools -y
# 安裝 QEMU Guest Agent
sudo virt-customize -a focal-server-cloudimg-amd64.img --install qemu-guest-agent

# 建立 Cloud init 基底

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 建立 VM_ID 9000 4 cores 8G net vmbr1 template
sudo qm create 9000 --name "ubuntu-2204-cloudinit-template" --memory 8192 --cores 4 --net0 virtio,bridge=vmbr1
# 把剛剛下載的 Image 給這台 9000 機器 並且儲存在 share-nas
sudo qm importdisk 9000 focal-server-cloudimg-amd64.img share-nas
# VM 配置 SCSI 硬碟
sudo qm set 9000 --scsihw virtio-scsi-pci --scsi0 share-nas:9000/vm-9000-disk-0.raw
# 設置開機硬碟
sudo qm set 9000 --boot c --bootdisk scsi0
# 設置 Cloud init 產生 ISO
sudo qm set 9000 --ide2 share-nas:cloudinit
# 設置 Serial Port
sudo qm set 9000 --serial0 socket --vga serial0
# 啟用 Agent
sudo qm set 9000 --agent enabled=1
# 轉換成 Template
sudo qm template 9000
1
2
3
4
5
6
7
8
9
wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
apt install guestfs-tools
virt-customize -a jammy-server-cloudimg-amd64.img --install qemu-guest-agent
qm create 8000 --name ci-template --memory 8192 --net0 virtio,bridge=vmbr1 --scsihw virtio-scsi-pci
qm set 8000 --scsi0 share-nas:0,import-from=/root/jammy-server-cloudimg-amd64.img
qm set 8000 --ide2 share-nas:cloudinit
qm set 8000 --boot order=scsi0
qm set 8000 --serial0 socket --vga serial0
qm template 8000

# 複製 Template 成為 VM

1
sudo qm clone 9000 999 --name test-clone-cloud-init

# Reference

  • How to create a Proxmox Ubuntu cloud-init image