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
| 12
 3
 4
 
 | # 安裝相關 Toolssudo 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 基底
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 | # 建立 VM_ID 9000 4 cores 8G net vmbr1 templatesudo 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
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 
 | wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.imgapt 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