Deploy VM with Cloud Image

From CMU ITSC Network

การสร้าง 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-cloud-image-01.png

  • ระบุรายละเอียดของ VM ตามต้องการ ชื่อของ VM ควรระบุชื่อผู้สร้างหรือชื่อส่วนงาน เช่น supawit-server, nurse-server จากนั้นกด Next

Vm-cloud-image-02.png

  • ในส่วนของ Resources กด Attach Disk เลือก Type = Disk, Operation = Clone from Image, Image เลือก image ของ OS ที่มีคำว่า cloudimg, Capacuty = ขนาดของ Disk ควรจะใช้น้อย ๆ ก่อน ไม่ต้องเผื่อ จะทำให้เสียพื้นที่โควต้าเกินความจำเป็นได้ สามารถขยายเพิ่มได้ จากนั้นกด Save

Vm-cloud-image-03.png

  • กด Attach to Subnet เลือก Subnet เลือกการตั้งค่า IP Address เป็น DHCP หรือ Static ได้ จากนั้นกด Save

Vm-cloud-image-04.png Vm-cloud-image-05.png

  • กด Next ในส่วนของ Resources

Vm-cloud-image-06.png

  • ในส่วนของ Management ตั้งค่า Timezone, Guest Customization เลือก Script Type เป็น Cloud-init(Linux), Configuration Method เป็น Custom Script

Vm-cloud-image-07.png

  • เนื้อหาของ 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

Vm-cloud-image-09.png

  • กด Next ในส่วนของสรุป กด Create VM

Vm-cloud-image-08.png

  • รอ VM สร้างเสร็จเลือก VM แล้วเลือก Action, Power On

Vm-cloud-image-10.png

  • การ 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
  
  • ตัวอย่าง

Vm-cloud-image-11.png

การขยาย Disk ของ VM

ติดต่อสอบถาม

MS Teams Chat