วิธีตั้งค่า Cloud-Init VM บน Proxmox VE เพื่อสร้างและกำหนดค่า VM โดยอัตโนมัติ

Published on November 11, 2025
วิธีตั้งค่า Cloud-Init VM บน Proxmox VE เพื่อสร้างและกำหนดค่า VM โดยอัตโนมัติ

Cloud-Init คืออะไร

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 จะพบช่องสำหรับกรอกค่าพื้นฐาน เช่น

  • User Name : ชื่อผู้ใช้หลัก เช่น root หรือ admin
  • Password
  • SSH Public Key
  • IP Configuration : ตั้งค่า Static IP หรือเลือก DHCP
  • DNS Server / Gateway

 

 

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

  • ลดเวลาการติดตั้งและตั้งค่า VM ใหม่
  • สร้างหลายเครื่องได้รวดเร็วและมีมาตรฐานเดียวกัน
  • สามารถรวมกับ Automation Tools เช่น Ansible, Terraform ได้
  • ปลอดภัยกว่า เพราะสามารถใช้ SSH Key แทนรหัสผ่าน

 

การตั้งค่า 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]

Understanding UUID

UUID นั้นต้องเรียกได้ว่ามีข้อถกเถียงกันมานานมา ในการใช้ในการเขียนโปรแกรมและการออกแบบดาต้าเบส วันนี้เราจะไปศึกษาว่ามันคืออะไร และ ในการออกแบบฐานข้อมูลมันเข้ามามีบทบาทอย่างไร UUID คืออะไร UUID ย่อมาจาก...

Read more »

วันสิ้นสุด License Perpetual ของ VMware มาถึงแล้ว รีบย้ายไป Proxmox VE กันเถอะ

ตอนที่ VMware ประกาศว่าจะออก ESXi 9 มานั้น ทุกคนในวงการก็คิดว่า มันน่าจะมาพร้อมการอัพเดทบางส่วนเหมือนทุกๆ ครั้งที่ผ่านมาเช่น การเพิ่มการสนับสนุนฮาร์ดแวร์...

Read more »

Garage ทางเลือกในการแทนที่ MinIO

MinIO นั้นเป็นซอฟต์แวร์ที่จะทำให้เราสามารถเก็บข้อมูลในลักษณะที่เป็น Object ได้ และ เรียกว่าเป็นตัวเลือกที่มีอยู่ไม่มากนักในท้องตลาดหากท่านต้องการจะสร้าง Object Storage Server เพื่อใช้ภายในองค์กร...

Read more »

Time Range Booking System

Time Range Booking คืออะไร และทำไมธุรกิจยุคใหม่จำเป็นต้องใช้ ในยุคที่ลูกค้าคาดหวัง ความรวดเร็วและความแม่นยำ มากขึ้น ระบบจองแบบเดิมที่เลือกแค่วันที่หรือรอบเวลา (slot...

Read more »

เพิ่มขีดความสามารถของ WordPress ด้วยการเชื่อมต่อ External API

WordPress คืออะไร WordPress คือระบบ CMS (Content Management System) แบบโอเพนซอร์ส ที่ใช้สำหรับสร้างเว็บไซต์โดยไม่จำเป็นต้องเขียนโค้ดเองเลย...

Read more »

Private Branding Hotel/Property Reservation System

ประเทศไทยนั้นมีจุดเด่นเรื่องสถานที่ท่องเที่ยวที่สวยงาม มีวัฒนธรรมอันยาวนาน และ ศิลปะท้องถิ่นที่มีเอกลักษณ์ รวมถึงอาหารที่ได้รับรางวัลระดับโลกมากมาย รวมถึงผู้คนที่มีจิตใจโอบอ้อมอารี และ สิ่งเหล่านั้นเองเป็นสิ่งที่ดึงดูดนักท่องเที่ยวทั่วโลกมายังประเทศไทย และมีการเติบโตของธุรกิจโรงแรมอย่างมากมายทุกประเภทไม่ว่าจะเป็น โรงแรม...

Read more »