Tag: OpenNebula

  • A Testing Virtual Data Center with OpenNebula miniONE on KVM

    โน้ตบุ๊ค HP รุ่น 6450b มีหน่วยความจำ 4 GB ผมเอามาทำเป็นเซิร์ฟเวอร์สำหรับรัน Virtual Machine (VM) ผมใช้ทดสอบติดตั้ง server หรือ services ต่าง ๆ เช่น Ubuntu server ทำงานเป็น web server เป็นต้น ผมอยากจะเรียกว่า Mobile Virtual Data Center ครับ โดยที่ผมนำซอฟต์แวร์ที่ชื่อว่า OpenNebula มาใช้ ตัวนี้ใช้ทำเป็น Virtual Data Center ขนาดใหญ่ได้เลยหากมี Hardware สเปคสูง ๆ สร้าง VM ให้บริการได้จริง เค้ามีซอฟต์แวร์สำหรับเครื่องเดียว (Test Drive) เรียกว่า OpenNebula miniONE ให้ใช้ น่าจะนำมาลงโน้ตบุ๊คได้ จึงได้ทดลองดู พบว่าใช้ได้จริง

    สิ่งที่ทำมีดังนี้

    1. เตรียม USB Drive ที่ Boot เป็น Ubuntu Desktop สำหรับติดตั้ง 
      • ดาวน์โหลดรุ่น LTS 20.04  ไฟล์นี้ ubuntu-20.04.1-desktop-amd64.iso
      • นำมาเขียนลง USB Drive ด้วยโปรแกรม Rufus for Windows

    (สร้าง Bootable USB Drive ด้วยโปรแกรม Rufus for Windows)

    1. นำ USB Drive ไป Boot ที่โน้ตบุ๊ค และ ติดตั้ง Ubuntu Desktop 

    (ติดตั้ง Ubuntu Desktop 20.04)

    1. Boot Ubuntu Desktop ที่โน้ตบุ๊ค และเข้าใช้งาน
      ติดตั้ง OpenSSH server
      • คำสั่ง sudo apt install openssh-server
    2. ติดตั้งเซิร์ฟเวอร์สำหรับสร้าง VM 
      • ติดตั้ง OpenNebula miniONE on KVM
      • แก้ไขเล็กน้อย
        • เตรียมไว้ว่าต่อไปจะใช้ TCP Port 80 สำหรับ web server ที่เป็น VM จึงต้องแก้ไข default port จาก 80 เป็นอย่างอื่น ตั้งค่า :port: 8080 แก้ไขที่ไฟล์ /etc/one/sunstone-server.conf
        • รันคำสั่ง sudo systemctl restart opennebula-sunstone.service
        • หลังจากติดตั้ง miniONE จะมีการจัดการค่าทาง network ใหม่ เราต้องแก้ไขให้ Ubuntu Desktop ได้รับ DHCP IP ดังนี้ ตั้งค่า renderer: networkd ตั้งชื่อ ethernets ที่ใช้ และ dhcp4: yes แก้ไขที่ไฟล์ /etc/netplan/01-network-manager-all.yaml
        • รันคำสั่ง sudo netplan apply
        • รันคำสั่ง ip addr
      • เข้า Browser ไปที่ URL http://NOTEBOOK_IP:8080 และ Login เข้าใช้ด้วย username คือ oneadmin และ password ที่ได้รับ
      • ปรับแต่งให้ Ubuntu Desktop ทำ enable packet forwarding for IPv4 เข้าออก VM ได้
        • ตั้งค่า net.ipv4.ip_forward=1 แก้ไขที่ไฟล์ /etc/sysctl.conf
        • รันคำสั่ง sudo sysctl -p

    (ติดตั้ง OpenNebula miniONE on KVM)

    1. สร้าง VM 
      • สร้าง VM Template ชื่อ Install new ubuntu และระบุว่าจะใช้ ubuntu-20.04.1-live-server-amd64.iso ในขั้นตอนติดตั้ง
      • สร้าง VM จาก VM Template ที่สร้างในข้อที่แล้ว
      • เปิด VM และ เข้าไปทำงานทางหน้า Web console จากนั้น login เข้าใช้งาน
      • ติดตั้ง Ubuntu Server (ติดตั้ง Ubuntu Server 20.04 ใน VM ของ miniONE KVM)
      • ติดตั้ง apache2 web server (เปิด port 80) พร้อม php และลงซอฟต์แวร์ชื่อ CMSimple version 5.3 สำหรับทำเป็น CMS Web Server อย่างง่าย ไม่มี database (แตกไฟล์ CMSimple_5-3.zip ไว้ใน /var/www/html/cms/)
        (ติดตั้ง CMSimple version 5.3 ใน VM ของ miniONE KVM)
      • ทดสอบการเข้าใช้งานจาก Ubuntu Desktop ที่โน้ตบุ๊ค เพราะว่าในตอนนี้ OpenNebula miniONE จะสร้าง network ชื่อ vnet บน Interface ชื่อ minionebr ทำให้เข้าถึง http://VM_IP/cms/ ได้เฉพาะจากเครื่องโน้ตบุ๊คนี้เท่านั้น

    (สร้าง VM OpenNebula miniONE on KVM)

    1. ปรับแต่งให้ Ubuntu Desktop ทำหน้าที่เป็น proxy web server
      • ติดตั้ง haproxy
      • ตั้งค่า haproxy.conf ให้ชี้ไปที่ VM web server ที่ถูกต้อง ตามค่า URL path คือ /cms/  

    (ติดตั้ง haproxy บน Ubuntu Desktop)

    1. ทดสอบใช้งาน http://NOTEBOOK_IP/cms/ จากเครื่องอื่นใน LAN
  • ติดตั้ง OpenNebula miniONE on KVM

    เป็นวิธีการติดตั้งเซิร์ฟเวอร์สำหรับสร้าง VM โดยเลือกใช้โปรแกรมชื่อ OpenNebula miniONE ซึ่งจะมีตัวเลือกว่า จะติดตั้งเพื่อใช้งานกับ Hypervisor ชนิดใด เช่น KVM, vCenter, LXD หรือ Firecracker เป็นต้น ในที่นี้เลือก KVM

    ขั้นตอน

    1. หลังจากเปิดเข้าใช้งาน Ubuntu Desktop เราจะต้องใช้ Terminal เพื่อทำคำสั่งต่าง ๆ โดยคลิกที่ไอคอน 9 จุด แล้วเลือก All ให้แสดงทุกโปรแกรม และเลือก Terminal
    2. ติดต้้ง openssh-server หากยังไม่ได้ติดตั้ง ด้วยคำสั่ง sudo apt install openssh-server
    3. พักหน้าต่าง Terminal ไว้ก่อน ตอนนีัเราจะไปดาวน์โหลด Opennebula miniONE โดยคลิกเปิดเบราว์เซอร์ Firefox และค้นหาคำว่า opennebula
    4. คลิกเลือก miniONE on KVM จากหน้าต่างของเว็บไซต์ opennebula.io
    5. จะมีบรรรทัดคำสั่งให้เราคัดลอกไปใช้ในการติดตั้ง
    6. ดาวน์โหลดตัวโปรแกรมติดตั้ง
    7. รันคำสั่งติดตั้ง คือ sudo bash minione
    8. จะมีการตรวจสอบสักครู่แล้วแจ้งให้พิมพ์ yes เพื่อยืนยันการติดตั้ง
    9. เมื่อเสร็จจะได้ user และ password ให้จดไว้ (จะเก็บอยู่ใน /var/lib/one/.one/one_auth)
    10. เตรียมไว้ว่าต่อไปจะใช้ TCP Port 80 สำหรับ web server ที่เป็น VM จึงต้องแก้ไข default port จาก 80 เป็นอย่างอื่น ตั้งค่า :port: 8080 แก้ไขที่ไฟล์ /etc/one/sunstone-server.conf
    11. รันคำสั่ง sudo systemctl restart opennebula-sunstone.service
    12. หลังจากติดตั้ง miniONE จะมีการจัดการค่าทาง network ใหม่ ทำให้ไม่ได้ IP ตรวจสอบด้วยการรันคำสั่ง ip addr 
    13. เราต้องแก้ไขให้ Ubuntu Desktop ได้รับ DHCP IP ดังนี้ ตั้งค่า renderer: networkd ตั้งชื่อ ethernets ที่ใช้ และ dhcp4: yes แก้ไขที่ไฟล์ /etc/netplan/01-network-manager-all.yaml 
    14. เสร็จแล้วต้องรันคำสั่ง sudo netplan apply และตรวจสอบดูค่า IP
    15. จัดการแก้ไขปรับแต่งให้ Ubuntu Desktop ทำ enable packet forwarding for IPv4 เข้าออก VM ได้ ตั้งค่า net.ipv4.ip_forward=1 โดยแก้ไขที่ไฟล์ /etc/sysctl.conf
    16. รันคำสั่ง sudo sysctl -p
    17. เข้า Browser ไปที่ URL http://NOTEBOOK_IP:8080 และ Login เข้าใช้ด้วย username คือ oneadmin และ password ที่ได้รับ 
    18. จะเห็นหน้า Dashboard มี VM 1 ตัว 
    19. ในขั้นตอนติดตั้ง miniONE จะใส่ CentOS7 มาให้เป็นตัวอย่าง ทั้ง image และ VM template   พร้อมใช้งาน (ถ้าเราใช้ CentOS) 
    20. เนื่องจากผมจะไม่ใช้ จึงขอลบทิ้ง

    จบในส่วนการติดตั้ง