บังเอิญได้มีโอกาสเล่น OpenStack ผ่าน Community Cloud เลยได้ลองทำ Services Image สำหรับ OpenStack ดูบ้าง ซึ่งวิธีการไม่แตกต่างจากการทำ Image สำหรับ Eucalyptus สักเท่าไร หลักการทำมีดังนี้

  • สร้าง Image แบบ qcow2 เพื่อใช้เป็น Disk Image
  • ใช้ kvm ติดตั้ง OpenSUSE ลงใน Disk Image
  • ปรับแต่ง Disk Image เพื่อติดตั้ง ssh key


มาลงมือกันเลยครับ เริ่มจากสร้าง Disk Image ให้พอสำหรับติดตั้ง OpenSUSE

kvm-img create -f qcow2 opensuse.img 5G

จากนั้นก็ติดตั้ง OpenSUSE ลงไปใน Disk Image

kvm -m 512 -cdrom openSUSE-11.4-DVD-x86_64.iso -drive file=opensuse.img,if=virtio,index=0 -boot d -net nic -net user -nographic -vnc :1

ใช้ VNC ต่อไปยัง VM ที่เรา run ดังนี้

vncviewer 10.10.10.1 :1

เลือกติดตั้ง SSH Server, CURL และ package ที่ต้องการ หลังจากติดตั้งเสร็จให้ shutdown VM และ boot เพื่อปรับแต่งดังนี้

kvm -m 512 -drive file=opensuse.img,if=virtio,index=0,boot=on -boot c -net nic -net user -nographic -vnc :1

ให้ VNC เชื่อมต่อเหมือนเดิม ใช้ zypper ติดตั้ง openssh, curl ดังนี้

zypper install openssh curl

เพิ่ม ssh key อัตโนมัติเมื่อ start instance ให้สร้างไฟล์ /etc/init.d/sshkey แล้วใส่ config ลงไปดังนี้

echo >> /root/.ssh/authorized_keys
curl -m 10 -s http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key | grep 'ssh-rsa' >> /root/.ssh/authorized_keys
echo "AUTHORIZED_KEYS:"
echo "************************"
cat /root/.ssh/authorized_keys
echo "************************"

เปลี่ยน permission ให้ execute ได้ดังนี้

chmod 755 /etc/init.d/sshkey

จากนั้น config ให้เริ่มทำงานทุกครั้งเมื่อ boot เครื่องดังนี้

chkconfig sshkey on

ตั้งค่า firewall ให้ ssh เข้ามาได้ ใช้ yast2 ไม่ใช่ iptable นะจ๊ะ

yast2

จากนั้นลบ network persistance rules ออก เพื่อให้ instance จัดการ network insterface ได้ถูกต้อง

rm -rf /etc/udev/rules.d/70-persistent-net.rules

เท่านี้ก็เรียบร้อยแล้ว :) shutdown VM แล้ว

หากต้องการใช้งานก็ Upload Image ไปยัง OpenStack ได้เลย โดยใช้คำสั่ง

cloud-publish-image amd64 opensuse.img opensusebucket

หลังจาก Upload Image เสร็จเรียบร้อยแล้ว เราจะได้หมายเลข ami กับไฟล์ image manifest ดังนี้

ami-00000001 opensusebucket/opensuse.img.manifest.xml

หากต้องการ start instance ก็สามารถสั่ง run ได้เลย โดยใช้คำสั่ง

euca-run-instances ami-00000001 -k mykey -t m1.tiny

สำหรับการทำ Service Image จาก Linux Distribution อื่นๆ ก็ใช้วิธีการคล้ายๆ กันนี้ครับ

Ignacio M. Llorente ออกมาให้ความคิดเห็นเกี่ยวกับการประกาศความร่วมมือในการพัฒนา OpenStack ซึ่งเป็น Cloud Platform แบบโอเพนซอร์สตัวใหม่ ที่เพิ่งประกาศเปิดตัวไปเมื่อไม่นานมานี้ ในฐานะทีม OpenNebula ออกมาแสดงความคิดเห็นว่า รู้สึกตื่นเต้นกับการพัฒนาของชุมชน Cloud Computing อย่างมาก และดีใจที่เห็นผู้ให้บริการรายใหญ่ เข้ามาร่วมมือในการพัฒนา อย่างไรก็ตามทีม OpenNebula เห็นด้วยกับความคิดเห็นในการพัฒนา OpenStack เพราะจะเป็นการเริ่มต้นในการกำหนดสถาปัตยกรรมเปิดสำหรับ Cloud Computing แบบ IaaS และเป็นโครงการโอเพนซอร์สอย่างแท้จริง ซึ่ง OpenStack ได้วิจารณ์โครงการโอเพนซอร์ส Cloud Computing ก่อนหน้าที่มักใช้โมเดลแบบ Open-Core ซึ่งเป็นการเริ่มต้นแบบปิด เนื่องจากบางโครงการมีการแบ่งรุ่น Enterprise และรุ่นโอเพนซอร์ส ซึ่งส่งผลให้ โครงการที่อยู่ในส่วนโอเพนซอร์สที่ไม่ใช่ Enterprise ขาดคุณสมบัติหลายอย่าง ทั้งในด้านการขยายขนาด การบริหารจัดการ Virtual Machine หลายพันเครื่องได้ การประกาศเปิดตัวของ OpenStack ทำให้ทีมงานของ OpenNebula ต้องมาประกาศจุดยืน เพื่อป้องกันไม่ให้เกิดความเข้าใจผิดของชุมชนผู้ใช้และการขยายตัวของชุมชนของ OpenNebula

ซึ่ง LLorente ชี้แจงว่า OpenNebula เป็นโครงการโอเพนซอร์ส Cloud Computing 100% ใช้สัญญาอนุญาติแบบ Apache-license OpenNebula ไม่ได้เป็น Open Core อย่างที่หลายคนเข้าใจ ถึงแม้ว่า C12GLabs จะเพิ่งก่อตั้งแต่หน้าที่เกี่ยวข้องทางด้านงานบริการทางด้าน syste integration และบริการด้านการซัพพอร์ททางด้านเทคนิคเป็นหลัก และ C12Gศฟิห ไม่ได้ให้บริการ OpenNebula รุ่น Enterprise แต่อย่างใด แต่ C12GLabs พัฒนาส่วนเพิ่มเติมและ patch OpenNebula ให้กับพาร์ทเนอร์และลูกค้าเท่านั้น และ patch ต่างๆ ได้ contribute กลับเข้ามาในโครงการ OpenNebula 100% ตามข้อกำหนดของสัญญาอนุญาติที่ผ่านการรับรองโดย OSI

OpenNebula ไม่ได้เป็นรุ่นที่มีคุณสมบัติแบบจำกัด ไม่แบ่งรุ่น Enterprise Edition C12Glabs เข้าร่วมพัฒนากับชุมชน OpenNebula อย่างต่อเนื่อง อีกทั้งยังสนับสนุน resource ให้กับทีมพัฒนาเพื่อให้งานพัฒนา Open Nebula เป็นเทคโนโลยีในการสร้าง Advance Cloud Infrastructure อย่างแท้จริง

และอีกหลายหลายประเด็น ที่ใดที่เป็นแฟน OpenNebula ติดตามเพิ่มเติมได้ที่ Ulitzer ครับ