โน้ตบุ๊ค 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 ให้ใช้ น่าจะนำมาลงโน้ตบุ๊คได้ จึงได้ทดลองดู พบว่าใช้ได้จริง
สิ่งที่ทำมีดังนี้
- เตรียม 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)
- นำ USB Drive ไป Boot ที่โน้ตบุ๊ค และ ติดตั้ง Ubuntu Desktop
(ติดตั้ง Ubuntu Desktop 20.04)
- Boot Ubuntu Desktop ที่โน้ตบุ๊ค และเข้าใช้งาน
ติดตั้ง OpenSSH server- คำสั่ง sudo apt install openssh-server
- ติดตั้งเซิร์ฟเวอร์สำหรับสร้าง 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)
- สร้าง 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)
- ปรับแต่งให้ Ubuntu Desktop ทำหน้าที่เป็น proxy web server
- ติดตั้ง haproxy
- ตั้งค่า haproxy.conf ให้ชี้ไปที่ VM web server ที่ถูกต้อง ตามค่า URL path คือ /cms/
(ติดตั้ง haproxy บน Ubuntu Desktop)
- ทดสอบใช้งาน http://NOTEBOOK_IP/cms/ จากเครื่องอื่นใน LAN