Difference between revisions of "Deploy VM with Cloud Image"
From CMU ITSC Network
(6 intermediate revisions by the same user not shown) | |||
Line 88: | Line 88: | ||
* ตัวอย่าง | * ตัวอย่าง | ||
[[File:Vm-cloud-image-11.png|link=]] | [[File:Vm-cloud-image-11.png|link=]] | ||
+ | |||
+ | == การขยาย Disk ของ VM == | ||
+ | |||
+ | * ใช้คำสั่ง df -h เพื่อดูการปริมาณการใช้งาน Disk | ||
+ | <pre> | ||
+ | youusername@ubuntu:~$ df -h | ||
+ | Filesystem Size Used Avail Use% Mounted on | ||
+ | tmpfs 383M 1.1M 382M 1% /run | ||
+ | efivarfs 256K 17K 234K 7% /sys/firmware/efi/efivars | ||
+ | /dev/sda1 48G 1.9G 46G 4% / | ||
+ | tmpfs 1.9G 0 1.9G 0% /dev/shm | ||
+ | tmpfs 5.0M 0 5.0M 0% /run/lock | ||
+ | /dev/sda16 881M 62M 758M 8% /boot | ||
+ | /dev/sda15 105M 6.2M 99M 6% /boot/efi | ||
+ | tmpfs 383M 12K 383M 1% /run/user/100 | ||
+ | </pre> | ||
+ | |||
+ | * ใช้คำสั่ง lsblk เพื่อดูโครงสร้าง Disk/Partition | ||
+ | <pre> | ||
+ | youusername@ubuntu:~$ lsblk | ||
+ | NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS | ||
+ | sda 8:0 0 50G 0 disk | ||
+ | ├─sda1 8:1 0 49G 0 part / | ||
+ | ├─sda14 8:14 0 4M 0 part | ||
+ | ├─sda15 8:15 0 106M 0 part /boot/efi | ||
+ | └─sda16 259:0 0 913M 0 part /boot | ||
+ | sr0 11:0 1 374K 0 rom | ||
+ | </pre> | ||
+ | |||
+ | * ถ้าต้องการเพิ่มขนาด Disk ไปที่หน้าจัดการ VM บน Private Cloud เลือก VM, Actions, Update | ||
+ | [[File:Vm-cloud-image-13.png|link=]] | ||
+ | |||
+ | * ในส่วน Configuration กด Next | ||
+ | [[File:Vm-cloud-image-14.png|link=]] | ||
+ | |||
+ | * ในส่วน Disks กดรูปดินสอทางขวาของ Disk ที่ต้องการขยาย | ||
+ | [[File:Vm-cloud-image-15.png|link=]] | ||
+ | |||
+ | * ในหน้าต่าง Update Disk เพิ่ม Capacity ที่ต้องการ '''ควรเพิ่มทีละน้อย เมื่อใกล้เต็มค่อยมาเพิ่มอีกได้เรื่อย ๆ ไม่จำเป็นต้องจองพื้นที่ไว้''' จากนั้นกด Save, Next, Next และ Save | ||
+ | [[File:Vm-cloud-image-16.png|link=]] | ||
+ | |||
+ | * จากนั้นใช้คำสั่ง lsblk จะเห็นว่าขนาดของ Disk เพิ่มเป็น 100G | ||
+ | <pre> | ||
+ | youusername@ubuntu:~$ lsblk | ||
+ | NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS | ||
+ | sda 8:0 0 100G 0 disk | ||
+ | ├─sda1 8:1 0 49G 0 part / | ||
+ | ├─sda14 8:14 0 4M 0 part | ||
+ | ├─sda15 8:15 0 106M 0 part /boot/efi | ||
+ | └─sda16 259:0 0 913M 0 part /boot | ||
+ | sr0 11:0 1 374K 0 rom | ||
+ | </pre> | ||
+ | |||
+ | * เมื่อใช้ df -h จะยังเห็นว่าขนาดของ partition ยังเป็น 50G อยู่ | ||
+ | <pre> | ||
+ | youusername@ubuntu:~$ df -h | ||
+ | Filesystem Size Used Avail Use% Mounted on | ||
+ | tmpfs 383M 1.1M 382M 1% /run | ||
+ | efivarfs 256K 17K 234K 7% /sys/firmware/efi/efivars | ||
+ | /dev/sda1 48G 1.9G 46G 4% / | ||
+ | tmpfs 1.9G 0 1.9G 0% /dev/shm | ||
+ | tmpfs 5.0M 0 5.0M 0% /run/lock | ||
+ | /dev/sda16 881M 62M 758M 8% /boot | ||
+ | /dev/sda15 105M 6.2M 99M 6% /boot/efi | ||
+ | tmpfs 383M 12K 383M 1% /run/user/1000 | ||
+ | </pre> | ||
+ | |||
+ | * ให้ขยาย partition โดยใช้คำสั่ง '''sudo growpart /dev/sda 1''' และ '''sudo resize2fs /dev/sda1''' ดังนี้ | ||
+ | <pre> | ||
+ | youusername@ubuntu:~$ sudo growpart /dev/sda 1 | ||
+ | CHANGED: partition=1 start=2099200 old: size=102758367 end=104857566 new: size=207615967 end=209715166 | ||
+ | youusername@ubuntu:~$ sudo resize2fs /dev/sda1 | ||
+ | resize2fs 1.47.0 (5-Feb-2023) | ||
+ | Filesystem at /dev/sda1 is mounted on /; on-line resizing required | ||
+ | old_desc_blocks = 7, new_desc_blocks = 13 | ||
+ | The filesystem on /dev/sda1 is now 25951995 (4k) blocks long. | ||
+ | </pre> | ||
+ | |||
+ | * ใช้คำสั่ง df -h และ lsblk เพื่อดูการใช้งานและโครงสร้าง partition จะเห็นว่าขยายเป็น 100G แล้ว | ||
+ | <pre> | ||
+ | youusername@ubuntu:~$ df -h | ||
+ | Filesystem Size Used Avail Use% Mounted on | ||
+ | tmpfs 383M 1.1M 382M 1% /run | ||
+ | efivarfs 256K 17K 234K 7% /sys/firmware/efi/efivars | ||
+ | /dev/sda1 96G 1.9G 94G 2% / | ||
+ | tmpfs 1.9G 0 1.9G 0% /dev/shm | ||
+ | tmpfs 5.0M 0 5.0M 0% /run/lock | ||
+ | /dev/sda16 881M 62M 758M 8% /boot | ||
+ | /dev/sda15 105M 6.2M 99M 6% /boot/efi | ||
+ | tmpfs 383M 12K 383M 1% /run/user/1000 | ||
+ | youusername@ubuntu:~$ lsblk | ||
+ | NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS | ||
+ | sda 8:0 0 100G 0 disk | ||
+ | ├─sda1 8:1 0 99G 0 part / | ||
+ | ├─sda14 8:14 0 4M 0 part | ||
+ | ├─sda15 8:15 0 106M 0 part /boot/efi | ||
+ | └─sda16 259:0 0 913M 0 part /boot | ||
+ | sr0 11:0 1 374K 0 rom | ||
+ | </pre> | ||
+ | |||
+ | == ติดต่อสอบถาม == | ||
+ | [https://teams.microsoft.com/l/chat/0/0?users=supawit.w@cmu.ac.th MS Teams Chat] |
Latest revision as of 09:46, 20 October 2025
การสร้าง ssh key pair
- เปิด Windows Powershell หรือ Terminal
- รันคำสั่งต่อไปนี้
ssh-keygen -C "your_email@example.com"
คำอธิบาย -C : เพิ่ม comment เพื่อระบุว่า key นี้ใช้กับอีเมลใด
- กำหนดชื่อไฟล์และตำแหน่งจัดเก็บ
ระบบจะถามว่า:
Enter file in which to save the key (C:\Users\yourname/.ssh/id_ed25519):
กด Enter เพื่อใช้ค่าเริ่มต้น (C:\Users\yourname/.ssh/id_ed25519) หรือพิมพ์ชื่อไฟล์ใหม่ เช่น D:\Data\ssh-key\id_ed25519
- ตั้งรหัสผ่านสำหรับ Key (ถ้าต้องการ)
ระบบจะถามว่า:
Enter passphrase (empty for no passphrase):
ถ้าไม่ต้องการรหัสผ่าน ให้กด Enter ถ้าต้องการความปลอดภัยเพิ่ม ให้ใส่รหัสผ่านแล้วกด Enter
- ตรวจสอบไฟล์ที่สร้าง
ไฟล์จะถูกสร้างในโฟลเดอร์ที่ระบุก่อนหน้าโดยจะมี 2 ไฟล์
id_ed25519 → Private Key id_ed25519.pub → Public Key
- เราจะใช้ Public Key ทำ Cloud init เพื่อสร้าง user เริ่มต้นให้กับ VM ในการสร้าง VM จาก Cloud image ซึ่งสามารถใช้กับหลาย ๆ VM ได้
- เราจะใช้ Private Key ในการเข้าใช้งาน VM ผ่าน ssh โดยไม่ใช้ password ดังนั้นต้องเก็บ Private Key เป็นความลับไม่ส่งต่อให้ใคร และห้ามทำหาย
การสร้าง VM จาก Cloud image
- ไปที่ Create VM
- ระบุรายละเอียดของ VM ตามต้องการ ชื่อของ VM ควรระบุชื่อผู้สร้างหรือชื่อส่วนงาน เช่น supawit-server, nurse-server จากนั้นกด Next
- ในส่วนของ Resources กด Attach Disk เลือก Type = Disk, Operation = Clone from Image, Image เลือก image ของ OS ที่มีคำว่า cloudimg, Capacuty = ขนาดของ Disk ควรจะใช้น้อย ๆ ก่อน ไม่ต้องเผื่อ จะทำให้เสียพื้นที่โควต้าเกินความจำเป็นได้ สามารถขยายเพิ่มได้ จากนั้นกด Save
- กด Attach to Subnet เลือก Subnet เลือกการตั้งค่า IP Address เป็น DHCP หรือ Static ได้ จากนั้นกด Save
- กด Next ในส่วนของ Resources
- ในส่วนของ Management ตั้งค่า Timezone, Guest Customization เลือก Script Type เป็น Cloud-init(Linux), Configuration Method เป็น Custom Script
- เนื้อหาของ Script จะเป็นดังนี้ (ข้อแนะนำ : ควร save script นี้ไว้สำหรับใช้ deploy vm ครั้งต่อ ๆ ไป)
#cloud-config users: - name: youusername ssh-authorized-keys: - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAnSuDZmnvTDMAhG29cUgw7WQ8CPXPyUxMH3zGkbqfCD supawit-key@x1 sudo: ALL=(ALL) NOPASSWD:ALL groups: sudo shell: /bin/bash
โดย
- name: คือ username ที่จะสร้างบน VM
- ssh-authorized-keys: คือ Public Key ที่สร้างไว้แล้วสามารถดูได้จากคำสั่ง cat
- sudo: ALL=(ALL) NOPASSWD:ALL คือให้ user ที่สร้างใช้ sudo ได้โดยไม่ต้องถาม password
- กด Next ในส่วนของสรุป กด Create VM
- รอ VM สร้างเสร็จเลือก VM แล้วเลือก Action, Power On
- การ remote เข้า server จะใช้ Private Key กรณี Pirvate Key อยู่ใน path default (${HOME}\.ssh\) ใช้คำสั่ง
ssh yourusername@ip-address
- หรือ Private Key ไม่ได้อยู่ path default สามารถระบุ path ของ Private Key ด้วย option -i
ssh -i .\id_ed25519 yourusername@ip-address
- ตัวอย่าง
การขยาย Disk ของ VM
- ใช้คำสั่ง df -h เพื่อดูการปริมาณการใช้งาน Disk
youusername@ubuntu:~$ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 383M 1.1M 382M 1% /run efivarfs 256K 17K 234K 7% /sys/firmware/efi/efivars /dev/sda1 48G 1.9G 46G 4% / tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sda16 881M 62M 758M 8% /boot /dev/sda15 105M 6.2M 99M 6% /boot/efi tmpfs 383M 12K 383M 1% /run/user/100
- ใช้คำสั่ง lsblk เพื่อดูโครงสร้าง Disk/Partition
youusername@ubuntu:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 50G 0 disk ├─sda1 8:1 0 49G 0 part / ├─sda14 8:14 0 4M 0 part ├─sda15 8:15 0 106M 0 part /boot/efi └─sda16 259:0 0 913M 0 part /boot sr0 11:0 1 374K 0 rom
- ถ้าต้องการเพิ่มขนาด Disk ไปที่หน้าจัดการ VM บน Private Cloud เลือก VM, Actions, Update
- ในส่วน Configuration กด Next
- ในส่วน Disks กดรูปดินสอทางขวาของ Disk ที่ต้องการขยาย
- ในหน้าต่าง Update Disk เพิ่ม Capacity ที่ต้องการ ควรเพิ่มทีละน้อย เมื่อใกล้เต็มค่อยมาเพิ่มอีกได้เรื่อย ๆ ไม่จำเป็นต้องจองพื้นที่ไว้ จากนั้นกด Save, Next, Next และ Save
- จากนั้นใช้คำสั่ง lsblk จะเห็นว่าขนาดของ Disk เพิ่มเป็น 100G
youusername@ubuntu:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 100G 0 disk ├─sda1 8:1 0 49G 0 part / ├─sda14 8:14 0 4M 0 part ├─sda15 8:15 0 106M 0 part /boot/efi └─sda16 259:0 0 913M 0 part /boot sr0 11:0 1 374K 0 rom
- เมื่อใช้ df -h จะยังเห็นว่าขนาดของ partition ยังเป็น 50G อยู่
youusername@ubuntu:~$ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 383M 1.1M 382M 1% /run efivarfs 256K 17K 234K 7% /sys/firmware/efi/efivars /dev/sda1 48G 1.9G 46G 4% / tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sda16 881M 62M 758M 8% /boot /dev/sda15 105M 6.2M 99M 6% /boot/efi tmpfs 383M 12K 383M 1% /run/user/1000
- ให้ขยาย partition โดยใช้คำสั่ง sudo growpart /dev/sda 1 และ sudo resize2fs /dev/sda1 ดังนี้
youusername@ubuntu:~$ sudo growpart /dev/sda 1 CHANGED: partition=1 start=2099200 old: size=102758367 end=104857566 new: size=207615967 end=209715166 youusername@ubuntu:~$ sudo resize2fs /dev/sda1 resize2fs 1.47.0 (5-Feb-2023) Filesystem at /dev/sda1 is mounted on /; on-line resizing required old_desc_blocks = 7, new_desc_blocks = 13 The filesystem on /dev/sda1 is now 25951995 (4k) blocks long.
- ใช้คำสั่ง df -h และ lsblk เพื่อดูการใช้งานและโครงสร้าง partition จะเห็นว่าขยายเป็น 100G แล้ว
youusername@ubuntu:~$ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 383M 1.1M 382M 1% /run efivarfs 256K 17K 234K 7% /sys/firmware/efi/efivars /dev/sda1 96G 1.9G 94G 2% / tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sda16 881M 62M 758M 8% /boot /dev/sda15 105M 6.2M 99M 6% /boot/efi tmpfs 383M 12K 383M 1% /run/user/1000 youusername@ubuntu:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 100G 0 disk ├─sda1 8:1 0 99G 0 part / ├─sda14 8:14 0 4M 0 part ├─sda15 8:15 0 106M 0 part /boot/efi └─sda16 259:0 0 913M 0 part /boot sr0 11:0 1 374K 0 rom