Cloud-Init เป็นเครื่องมือมาตรฐานที่ช่วยให้ระบบสามารถตั้งค่าการเริ่มต้นของเครื่องเสมือน (Virtual Machine: VM) โดยอัตโนมัติทันทีที่ VM บูตขึ้นครั้งแรก เช่น
สร้าง user และ password
เพิ่ม SSH public key
ตั้งค่า hostname, IP address, DNS และ gateway
รัน script พิเศษตอนเริ่มต้น
บน Proxmox VE เราสามารถใช้ Cloud-Init ร่วมกับ template เพื่อสร้าง VM ใหม่ได้รวดเร็วและเป็นมาตรฐานเดียวกันทุกเครื่อง
แบบที่ 1 ขั้นตอนการตั้งค่า Cloud-Init บน Proxmox VE
การสร้างเทมเพลต Proxmox cloud-init
1. เปิด Shell แล้วใช้คำสั่งนำเข้าไฟล์ Cloud Image เข้ามาด้วยการดาวน์โหลด
$ wget https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img
2. นำเข้าอิมเมจเข้าสู่ Proxmox
$ qm create 100 --name ubuntu-cloud --memory 1024--cores 2 --net0 virtio,bridge=vmbr0,tag=149 $ qm importdisk 100 noble-server-cloudimg-amd64.img local-lvm $ qm set 100 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-100-disk-0
3. แนบไดรฟ์ cloud-init เพื่อให้ Proxmox
$ mv noble-server-cloudimg-amd64.img ubuntu-cloudinit.qcow2
4. กำหนดค่าพารามิเตอร์ cloud-init
$ qm set 100\ --ide2 local-lvm:cloudinit \ --boot c \ --bootdisk scsi0 \ --serial0 socket \ --vga serial0

5. เมื่อทำเสร็จแล้ว เราจะดำเนินการกำหนดค่าพารามิเตอร์ cloud-init ต่อไปได้ เหมือนขั้นตอนการตั้งค่า cloud-init หรือสามารถใช้คำสั่งนี้จัดการได้เช่นกัน
$ qm set 100\ --ide2 local-lvm:cloudinit \ --ipconfig0 ip=192.168.1.50/24,gw=192.168.1.1 \ --ciuser=ubuntu \ --sshkey ~/.ssh/id_rsa.pub \ --cipassword 'Letmein1$' \ --searchdomain cloud.local \ --nameserver 192.168.1.1 \ --ciupgrade 1
หรือหากคุณต้องการกำหนดค่าด้วย DHCP ก็จะมีลักษณะดังนี้:
$ qm set 100\ --ide2 local-lvm:cloudinit \ --ipconfig0 ip=dhcp \ --ciuser=ubuntu \ --sshkey ~/.ssh/id_rsa.pub \ --cipassword 'Letmein1$' \ --searchdomain cloud.local \ --nameserver 192.168.1.1 \ --ciupgrade 1
7. ติดตั้ง guest-agent ด้วยคำสั่ง
$ sudo apt install qemu-guest-agent -y
8. จัดการติดตั้ง software ที่ต้องการให้ครบ จากนั้นทำแปลง VM เป็นเทมเพลต
$ qm template 100

9. ตอนนี้คุณมีเทมเพลต Proxmox cloud-init ที่สามารถโคลนสำหรับ VM ใหม่ได้
สำหรับการปรับใช้ VM ใหม่จากเทมเพลต กรณีคุณไม่ได้โคลนจาก UI เว็บ คุณสามารถใช้บรรทัดคำสั่งเพื่อดำเนินการนี้ได้เช่นกัน ตัวอย่างเช่น:
$ qm clone 100 200--name ubuntu-node1 --full
$ qm set 200--ipconfig0 ip=192.168.1.51/24,gw=192.168.1.1
$ qm start 200

แบบที่ 2 ขั้นตอนการตั้งค่า Cloud-Init บน Proxmox VE (UI)
1. สร้าง VM Template สำหรับ Cloud-Init เข้าสู่หน้าเว็บของ Proxmox กด Create VM
2. ตั้งชื่อ VM เช่น ubuntu-cloudinit-template

3. แท็ป OS ให้เลือก Donot use any media

4. แท็ป System กำหนด machine = q35 bios= uefi และกำหนด EFI storage , format = qcow2 และเลือก qemu agent

5. แท็ป disks ไม่ต้องใช้ ลบได้เลย

6. กำหนด CPU

7. กำหนด Ram

8. กำหนด Network ** ไม่เลือก Firewall

10. กด Finish

9. ทำการลบ DVD ออกจาก VM (หน้า Hardware)

10. ไปที่เมนู Hardware ทำการเพิ่ม cloud-init เข้าไป


12. เปิด Shell แล้วใช้คำสั่งนำเข้าไฟล์ Cloud Image เข้ามาด้วยการดาวน์โหลด
$ wget https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img

13. ตรวจสอบไฟล์
$ ls
14. คำสั่งเปลี่ยนชื่อไฟล์
$ mv noble-server-cloudimg-amd64.img ubuntu-cloudinit.qcow2

15. ทำ Image resized
$ qemu-img resize ubuntu-cloudinit.qcow2 32G

16. importdisk
$ qm importdisk 8000 ubuntu-cloudinit.qcow2 local
$ qm set 8000 --serial0 socket --vga serial0

เท่านี้ก็เสร็จเรียบร้อย
17. กลับไปที่ VM Cloud-init จะเจอ Unusde disk 0 เลือก Edit เลือก Discard, เลือกSSD Emulation กด Add

18. ตั้งค่า cloud-init จะพบช่องสำหรับกรอกค่าพื้นฐาน เช่น

18 . ติดตั้ง guest-agent ด้วยคำสั่ง
$ sudo apt install qemu-guest-agent -y
19. จัดการติดตั้ง software ที่ต้องการให้ครบ จากนั้นทำแปลง VM เป็นเทมเพลต
20. เลือก VM cloud-init แล้วเลือก Convert to template



21. ทำการ Clone VM template cloud-init สามารถนำไปสร้าง VM ใหม่ได้ทันที โดย
คลิกขวา Clone เลือก “Full Clone” หรือ “Linked Clone”
กำหนดชื่อและ Node ที่ต้องการ
ระบบจะสร้าง VM ใหม่พร้อมค่าทั้งหมดจาก Cloud-Init



22. เมื่อ Clone VM สำเร็จ ให้ไปที่ VM นั้น เลือกเมนู Options > Boor order ทำการเลือก disk

23. สั่ง Start VM ได้เลย

– เรียบร้อย เท่านี้ก้อใช้งานได้
ประโยชน์ของการใช้ Cloud-Init
การตั้งค่า Cloud-Init บน Proxmox VE เป็นขั้นตอนสำคัญสำหรับผู้ดูแลระบบที่ต้องการความรวดเร็วและความยืดหยุ่นในการ Deploy VM แบบอัตโนมัติ เพียงสร้าง Template ที่รองรับ Cloud-Init หนึ่งชุด ก็สามารถสร้าง VM ใหม่ได้ในไม่กี่คลิก ประหยัดทั้งเวลาและแรงงานในการดูแลระบบ
บริษัท AVESTA ให้บริการติดตั้ง จำน่าย Proxmox VE และพัฒนาระบบ AVT Infra Control Center for Proxmox VE เราเป็นตัวแทนตรง และ ได้รับการไว้วางใจ ให้ติดตั้งกับบริษัทน้อยใหญ่มากมาย สนใจสอบถาม Line OA : @avesta.co.th หรือ Email : [email protected]