Suriyan 53.04 ภายใต้ชื่อ Codename ว่า Roronoa Zoro ออกตัวจริงแล้วหลังจากที่คอยกันมานาน เวอร์ชั่นนี้เป็นการต่อยอดมาจาก Ubuntu 10.04 ครับ โดยการเปลี่ยนแปลงหลักๆ มีดังนี้

  • รุ่นนี้เปลี่ยนเป็น DVD แล้ว เพราะยัดของไม่ลงจริงๆ ท่านที่ไม่มี Drive DVD ใช้ Ubuntu ต้นฉบับไปก่อนครับ หรือสร้างตัวติดตั้ง USB เอา วิธีการไปสอบถามใน forum.ubuntuclub.com เอาครับ
  • แก้ Bug OpenOffice.org โดยถอด OpenOffice.org ของ Ubuntu ออก แล้วใช้ OpenOffice.org ของ Oracle โดยตรงแทน
  • แก้ Bug Firefox crash
  • Codec ครบชุด เล่น Flash ได้ทันที
  • ซอฟต์แวร์เพิ่มเติม
    • Gimp
    • Inkscape
    • Stardict
    • VLC
    • Thunderbird
    • TS Client (สำหรับ Remote เครื่อง Windows)

สามารถดาวน์โหลดได้ที่หน้าดาวน์โหลดของ Suriyan เช่นเดิมครับ

ที่มา: Suriyan.in.th

คลังซอฟต์แวร์ของ Suriyan เตรียมแพคเกจที่เกี่ยวข้องกับภาษาไทยบางส่วนเรียบร้อยแล้ว ไม่ว่าจะเป็นฟอนต์ภาษาไทย ดิกชันนารีภาษาไทย และแพคเกจอื่นๆ ที่เกี่ยวข้อง เพื่อรองรับผู้ใช้งาน Ubuntu 10.10 Maverick Meerkat และ Suriyan 53.10 Demon Child สำหรับการตั้งค่า Repo สามารถตั้งค่าได้โดยการติดตั้งแพคเกจ suriyan-repository เช่นเดิม หากท่านที่อัพเกรดจาก Ubuntu 10.04 ไปเป็น Ubuntu 10.10 สามารถอัพเดทแพคเกจใหม่จากคลังซอฟต์แวร์ได้เช่นกัน คลังซอฟต์แวร์ยังเป็นสถาปัตยกรรม x86 อยู่หากท่านใดที่ต้องการช่วยเหลือพัฒนาคลังในส่วนสถาปัตยกรรม x64 ทางจะทีมงานยินดีเป็นอย่างยิ่งครับ คลังซอฟต์แวร์ของ Suriyan ไม่ได้เป็นเพียงแค่คลังซอฟต์แวร์ที่อยู่ในรูป binary เพียงอย่างเดียว คุณสามารถดาวน์โหลดซอร์สโค้ดจากคลังซอฟต์แวร์ได้ โดยใช้เครื่องมือจัดการแพคเกจอย่าง APT และ Synaptic มาช่วยกันสร้างคลังซอฟต์แวร์เชิงสร้างสรรค์กันครับ สำหรับท่านที่ต้องการเพิ่มซอฟต์แวร์ในคลังขอความกรุณาติดต่อ @anoochit และ @gumara ครับ

หลังจากปล่อย Suriyan 53.04 ไปหมาดๆ ทีมงาน ThaiOpenSource.org ได้ออกแบบ Artwork ในส่วนต่างๆ เป็น ตัวต้นแบบเล็กๆ เพื่อใช้ใน Suriyan Demon Child สำหรับ Mocup ที่จะเอามาให้ดูวันนี้เป็นหน้าจอบูตแบบ Plymouth ขณะบูตเช้าสู่ระบบ ในรุ่นนี้เลือกใช้โลโก้สีขาวบนพื้นสีส้ม ใช้แนวคิดผนึกพลังส่งออกมาเป็นโลโก้ Suriyan อะไรประมาณนั้น ธีมนี้ปรับปรุงจากงานพัฒนาของ Fedora Design คงต้องขอขอบคุณสำหรับงาน contribute ดีๆ จากชุมชน Fedora ด้วยครับ สำหรับเท่าที่สนใจงานออกแบบพร้อมงานพัฒนาด้านกราฟิกให้ Suriyan สามารถร่วม contribute ผลงานของคุณได้ที่ Twitter @anoochit และ @gumara ครับ ทิ้ง video เอาไว้ให้ดูเป็นแนวทางครับ สำหรับงาน Artwork ในส่วนต่างๆ จะทะยอยเอามาให้ดูกันเรื่อยๆ ครับ

ปล่อยให้โหวดกันไปประมาณ 1 อาทิตย์ ตอนนี้ Suriyan 53.10 ได้ชื่ออย่างเป็นทางการแล้ว คือ Demon Child ซึ่งเป็นชื่อฉายาของ Nico Robin นั่นเอง สำหรับ Nico Robin เป็นตัวละครหนึ่งใน One Piece ด้วยสัดส่วน 38-23-36 ที่ออกจะเซ็กซี่ได้ใจเป็นขวัญใจของหนุ่มๆ หลายคน เอ้าพอแค่นี้ก่อนเดี๋ยวน้ำลายหก สำหรับงานพัฒนา Suriyan ในรุ่นถัดไปงานพัฒนาจะเริ่มจากต้นน้ำเป็นหลัก ตั้งแต่โครงการต้นน้ำต่างๆ ได้แก่ Gnome, OpenOffice.org, บางส่วนใน Ubuntu และโครงการอื่นๆ ที่คาดว่าจะรวมเข้ามาใน Suriyan ในรุ่นหน้า และเช่นเคยสำหรับท่านที่ต้องการช่วยเหลืองานพัฒนา แนะนำให้ช่วยเหลืองานต้นน้ำกันก่อนครับ ทีม ThaiOpenSource.org เองก็กำลังลุยงานต้นน้ำอยู่เช่นกัน ขอบคุณทุกเสียงสำหรับการโหวดครับ

ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ (เนคเทค/สวทช.) โดย หน่วยปฏิบัติการวิจัยและพัฒนาซอฟต์แวร์โอเพนซอร์ส และกลุ่มผู้ค้าคอมพิวเตอร์ในโครงการ ECOLONUX จัดแถลงข่าว “ก้าวที่ผ่านมาและก้าวต่อไปของ ECOLONUX” โดยการนำเสนอประเด็นผล สำเร็จของโครงการฯในรอบ 1 ปีที่ผ่านมา และพิธีลงนามความร่วมมือส่งเสริมการใช้ซอฟต์แวร์โอเพนซอร์ส ของกลุ่มผู้ประกอบการศูนย์การค้า ไอทีมอลล์ ฟอร์จูน ในวันอังคารที่ 15 มิถุนายน 2553 ที่ผ่านมา ณ ลานชั่น 3 ศูนย์ คอมพิวเตอร์ไอทีมอล์ล ฟอร์จูน ซึ่งมีสื่อมวลชนให้ความสนใจหลายค่าย นอกจากนี้ ยังมีการออกบูธของกลุ่มผู้ค้าคอมพิวเตอร์ในโครงการ ECOLONUX อีกด้วย

ECOLONUX เป็นโครงการส่งเสริมการใช้ซอฟต์แวร์โอเพนซอร์ส ที่ร่วมมือกันระหว่างศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ (เนคเทค/สวทช.) และผู้ประกอบการ 5 บริษัท ได้แก่ บมจ. เอสวีโอเอ, ดีคอมพิวเตอร์, โพเวลอุตสาหกรรมคอมพิวเตอร์ ไอบีเบเคอรี และ บมจ.ซินเน็ค (ประเทศไทย) เพื่อพัฒนาผู้ประกอบการให้มีความสามารถในการติดตั้งซอฟต์แวร์โอเพนซอร์ส รวมถึงการถ่ายทอดความรู้ในการแก้ปัญหาต่างๆ นำไปสู่การเพิ่มปริมาณผู้ใช้งานซอฟต์แวร์โอเพนซอร์สในปริมาณมาก จากผลการดำเนินโครงการที่ผ่านมา เนคเทค ได้รับยอดการผลิตและจำหน่ายคอมพิวเตอร์ที่ติดตั้งซอฟต์ฟแวร์โอเพนซอร์ส ตั้งแต่เดือนกุมภาพันธ์ 2552-พฤษภาคม 2553 ,รายละเอียดดังนี้

  1. ยอดการติดตั้ง ECOLONUX จำนวน 68,518 เครื่อง
    ช่วยทดแทนการละเมิดลิขสิทธิ์ซอฟต์แวร์ คิดเป็นมูลค่า 1,233,424,000 บาท
  2. ยอดการติดตั้งโอเพนซอร์สฟอร์วินโดวส์ จำนวน 32,412 เครื่อง
    ช่วยทดแทนการละเมิดลิขสิทธิ์ซอฟต์แวร์ คิดเป็นมูลค่า 486,180,000 บาท

ยอดรวมการติดตั้งซอฟต์แวร์อเพนซอร์ส จำนวน 100,930  เครื่อง ช่วยทดแทนการละเมิดลิขสิทธิ์ซอฟต์แวร์ คิดเป็นมูลค่ารวมทั้งสิ้น 1,719,504,000 บาท

เนคเทค ได้ลงนามความร่วมมือส่งเสริมการใช้ซอฟต์แวร์โอเพนซอร์สกับกลุ่มบริษัทในศูนย์การค้าฟอร์จูนอีก 5 บริษัท เข้าร่วมโครงการ ECOLONUX ได้แก่ เจท คอมพิวเตอร์พลัส, ออสการ์ โฟร์สตาร์, โปรคอนเนอร์, ไดมอนด์ พีเพิล และ โน้ตบุ๊ค โซลูชั่น รวมปัจจุบันมีบริษัทเข้าร่วมโครงการ 10 บริษัท เพื่อสร้างความมั่นใจในการใช้ซอฟต์แวร์โอเพนซอร์สของผู้ใช้งาน และสร้างความมั่นคงสู่ผู้ประกอบการในระยะยาวต่อไป

ที่มา – opensource2day

หลายท่านพยายามสร้าง Image เพื่อใช้ในการสร้างบริการของตัวเอง แต่ว่าไฟล์ Image มันมีขนาดเล็กไปหน่อย :P ทำให้เพิ่มโปรแกรมที่เราต้องการใส่ลงไปไม่ได้ งานเข้าเลยมั๊ยล่ะ อย่างนี้ต้องขยายครับ สำวิธีการขยายไฟล์ Image เราสามารถใช้วิธีการการจัดการไฟล์และพาร์ทิชันทั่วๆ ไปได้ มาลองดูวิธีการกันครับ ผมดาวน์โหลด pre-packaged มาแก้ไขเพิ่มเติมโปรแกรมที่ผมต้งการ แต่ตัว Image เองจำกัดพื้นที่ขนาดเพียง 2G เท่านั้น การติดตั้งบริการหรือโปรแกรมใหญ่ๆ ทำให้พื้นที่ที่ต้องใช้ไม่เพียงพอ ดังนั้นเราต้องขยายพื้นที่ของ Image วิธีการก็ง่ายๆ ใช้คำสั่งดังนี้

sudo fsck.ext3 -f ubuntu-9.04-i386.img
sudo resize2fs ubuntu-9.04-i386.img 8G

คำสั่งข้างต้นจำทำการตรวจสอบไฟล์ Image จากนั้นเราขยายพื้นที่เป็น 8G ด้วยคำสั่ง resize2fs เท่านี้ก็เรียบร้อยแล้ว ทีนี้ให้ upload image เขาไปที่ Eucalyptus สร้าง instance ขึ้นมาใหม่ ล็อกอินแล้วตรวจขนาดดูครับ จะพบว่าเรามีพื้นที่เพิ่มขึ้นเป็น 8G แล้ว ง่ายๆ แค่นี้เอง :)

คราวที่แล้วติดค้างเรื่องเอา services ของเราไปใส่ไว้ที่ Elastic Block Storage (EBS) แต่…ทำไมต้องทำเช่นนั้น ? หลังจากสร้าง Instance จาก EMI แล้วก็ได้ VM เป็น Instance สมชื่อ ถ้า terminate ตัว VM นั้นไปทุกอย่างที่อยู่ใน Instance นั้นก็ไปทั้งหมด หากไม่มีการสำรองข้อมูลโยกมาไว้ที่ EBS ดังนั้นการขอใช้บริการ Cloud จึงเลี่ยงไม่ได้ที่จะต้องใช้ EBS ด้วยเสมอๆ ซึ่งผู้ที่เป็นเจ้าของสามารถสร้าง snapshot เองได้ หากว่าเราติดตั้ง services ลงบน EBS แทนเราก็จะสามารถ snapshot ทั้ง services และ data ได้ในตัว อีกทั้งยังประหยัด resource อื่นๆ ได้อีกมาก ที่สำคัญเราไม่ต้องซื้อ services ที่มีจำหน่ายบน Cloud Cateloge เลย อืมมมลืมบอกไปว่าวิธีการนี้ใช้ได้กับ Amazon EC2 และ Amazon S3 ด้วยครับ เอ้ามาเริ่มกันเลย

ให้คุณ start instance ขึ้นมาครับ (ขอเป็น debian instance นะครับ) จากนั้นสร้าง volume ขนาดที่คิดว่าคุณจะต้องใช้ของผมใช้ประมาณ 8GB ให้ชื่อว่า mekha

euca-create-volume -s 8 -z mekha

จากนั้น attach volume กับ instance ที่กำลังทำงานอยู่ (debian ของเรา)

euca-attach-volume -i i-31AB05AF vol-5959961D -d /dev/sdc

ตัวเลข i-31AB05AF คือ instance-id และ vol-5959961D คือ volume-id ที่เราได้มาจากตอนสร้าง instance และ volumn เปลี่ยนตามของคุณนะครับ เอ้าตอนนี้เราจะมีอุปกรณ์ /dev/sdc เพิ่มเข้ามาใน instance ของเราแล้ว จากนั้นก็เริ่มขั้นตอนการใช้ disk ปกติทั่วไป ให้ login เป็น root ใน instance ของเรา จากนั้นสร้าง partition และ format ให้เรียบร้อย

mk2efs /dev/sdc1

จากนั้นสร้าง mount point ไปยัง volume (ใช้ชือว่า /esb) และ mount ให้เรียบร้อย

mkdir /ebs
mount /dev/sdc1 /ebs

ถึงขั้นตอนนี้คุณจะได้ /ebs ที่ mount มาจาก volume ที่สร้างขึ้นแล้ว จากนั้นเรามาเริ่มประกอบระบบปฏิบัติการใหม่โดยใช้ debootstrap กัน ให้ติดตั้ง debootsrap ดังนี้

apt-get install debootstrap

จากนั้นประกอบ LSB ขั้นมาก่อน

debootstrap squeeze /ebs

หลังจาก debootstrap ประกอบ LSB เสร็จ ใน /ebs คุณก็จะได้โครงสร้างเหมือน LSB จริงๆ แต่ไม่มี kernel และ initrd เท่านั้น ทีนี้ได้เวลาลุยแล้ว mount dev, proc, sys เพื่อใช้ในการ chroot

mount proc /ebs/proc -t proc
mount sysfs /ebs/sys -t sysfs
mount -o bind /dev /ebs/dev

เอาล่ะหลังจาก mount แล้วคุณจะได้ระบบปฏิบัติการซ้อนขึ้นมาใหม่อีก 1 ตัว มา chroot กันครับ

chroot /ebs

จากนั้นให้ตั้งค่า locale ดังนี้

apt-get install locales
dpkg-reconfigure locales

ตอนนี้คุณจะได้ระบบปฏิบัติการอีกหนึ่งตัวที่พร้อมทำงานแล้ว คราวนี้มาลองติดตั้ง services สักตัวครับ ขอเป็น web server ง่ายๆ อย่าง apache2 ก็แล้วกันครับ

apt-get install apache2

ตอนนี้เราก็ได้ web server ลงบน EBS ของเราแล้ว หากเรา browse ไปที่ Public IP คุณจะเห็นหน้าเว็บ default ของ apache ละ ทีนี้เพื่อความง่าย เขียน script ชื่อ ebs-services.sh เพื่อ start/stop services บน EBS ของเราครับ

---
#!/bin/bash
if [ ! -e /ebs/start_ebs.sh ]; then
echo "EBS volume is not mounted!"
exit 1
fi
if [ "$1" = "stop" ]; then
umount /ebs/sys
umount /ebs/proc
umount /ebs/dev
chroot /ebs /etc/init.d/apache2 stop
umount -lf /ebs
else
mount -t proc proc /ebs/proc
mount -t sysfs sysfs /ebs/sys
mount -o bind /dev /ebs/dev
chroot /ebs /etc/init.d/apache2 start
fi
---

เอาไฟล์ script นี้ไปใส่ไว้ใน /ebs ตอนนี้เราก็ได้ service ติดไปพร้อมกับ volume แล้ว เวลาย้าย volume ไป attach กับ instance อื่นๆ คุณก็สามารถ start services ของคุณได้ แถมยังสร้าง snaptshot ให้กับ volume เพื่อสำรองข้อมูลได้ด้วย

มาดูวิธีการย้าย ESB volume ไปใส่ instance อื่นที่สร้างไว้รอ เราต้อง stop service ก่อนครับ ก็ run script ของเราเมื่อกี้

./ebs-services.sh

จากนั้นก็ปลด volume ออกจาก instance เดิม

euca-detach-volume vol-5959961D

จากนั้นก็ attach ไปยัง instance อื่น ของผมชื่อ i-42B208D7

euca-attach-volume -i i-42B208D7 -d /dev/sdc vol-5957061D

จากนั้นก็ login ไปที่ instance แล้วก็ mount ให้เรียบร้อย

mkdir /ebs
mount /dev/sdc1 /ebs

จากนั้นก็ start services ของเรา

./ebs/start-ebs-services.sh

แค่นี้เราก็ย้าย EBS volume พร้อม sevices ไปต่อกับ instance อื่นๆ ได้แล้ว

ในครั้งที่แล้วเราสร้าง EMI โดยการติดตั้ง OS ลงใน Disk Image ครั้งนี้ผมจะมาแนะนำวิธีแบบฉลาดแกมโกงคือวิธีการแก้ไข Disk Image ที่มีอยู่แล้ว ในโครงการ Eucalyptus มี Pre-Packaged Image ที่ใช้เป็น Guest OS อยู่แล้ว อยู่ในรูปแบบ JeOS (Just enough Operating System) ซึ่งเราสามรถเอา Image มาแก้ไขได้ :) ไม่ได้ล้อเล่นครับ เอามาแก้ไขและติดตั้งโปรแกรมหรือของที่ยังขาดได้โดยตรงเลยล่ะ วิธีการนี้เป็นวิธีการเล่นกับ Disk Image ทั่วๆ ไปที่เรามักพบเจอกันอยู่แล้ว อธิบายหลังการคร่าวๆ กันก่อน JeOS Image ที่มีอยู่แล้วก็คือ Disk Image, Kernel Image (มีทั้ง KVM และ Xen) และ Ram Disk Image (Initrd.ing สำหรับ KVM,Xen) ซึ่งเราจะต้อง mount เจ้า Disk Image นี้ขึ้นมาเป็นอุปกรณ์หนึ่งในเครื่องของเราจากนั้นก็แก้ไขเหมือนกับการใช้งาน Storage ทั่วไป

สำหรับการติดตั้งโปรแกรมหรือบริการเพิ่มเติมเราสามารถใช้เครื่องมือที่เป็น package manager ของระบบปฏิบัติการนั้นๆ ได้โดยตรง ไม่ว่าจะเป็น Apt, Yum หรือ Zypper แต่ต้องทำในสิทธิ root เท่านั้น ที่ต้องระวังคือการติดตั้งอย่าให้ Disk Image ถูกเขียนจนเต็ม หากทราบว่าขนาดของ Disk Image ไม่พอให้ขยาย Disk Image ก่อนแล้วค่อยติดตั้งโปรแกรมเพิ่มเติมลงไป และสุดท้ายอย่ายุ่งกับ Kernel เป็นดีที่สุด เพราะคุณอาจต้องไล่เก็บ Kernel ของ KVM,Xen และ Initrd.img ของ KVM, Xen ด้วย อันนี้เปลืองแรงโดยใช่เหตุ เข้าใจข้อกำหนดกันแล้วมาลงมือทำกันได้เลย

ขั้นแรกไปดาวน์โหลด Image มาก่อน อาจจะไปเก็บเอาที่ UEC Release Image หรือ Pre-Packaged Image ของ Eucalyptus ได้เช่นกัน ผมยกตัวอย่างจาก Pre-Packaged Image จาก Eucalyptus ก็แล้วกันครับ มีขนาดเล็กดีครับ :) เครื่องผมเป็น Ubuntu 9.10 32 bits ผมขอเลือก Image ของ Ubuntu 32 bit มาเล่นก็แล้วกันครับ ใครใช้ Centos, Fedora ก็เลือกเอามาปรับแต่งกันตามสะดวกครับ ขั้นแรกดาวน์โหลด Pre-packaged มาก่อน

wget http://www.eucalyptussoftware.com/downloads/eucalyptus-images/euca-ubuntu-9.04-i386.tar.gz

เมื่อได้ไฟล์มาแล้วให้คลี่ไฟล์ออกครับ

tar zxvf euca-ubuntu-9.04-i386.tar.gz

เราจะได้ directory ที่ชื่อ euca-ubuntu-9.04-i386 ในนั้นจะมี kernel, initrd.img และ disk image เรียงกันอยู่เป็นระเบียบ :) disk image ที่เราจะเอามาปรับแต่งกันอยู่ที่ไฟล์ ubuntu.9-04.x86.img เอ้ามาต่อกัน

สร้าง loop device ขึ้นมาเพื่อใช้เป็น device ในการ mount image ดังนี้

cd euca-ubuntu-9.04-i386
losetup /dev/loop5 ubuntu.9-04.x86.img

ตอนนี้ disk image จะถูกผูกอยู่กับ loop device ชื่อ /dev/loop5 ตอนนี้เราเสมือนมี disk อยู่ 1 ลูก ที่รอการ mount เจ๋งมั๊ยอ่ะ เอ้าจะช้าอยู่ใย mount มันซะเลย

mkdir /media/euca-mount
mount /dev/loop5 /media/euca-mount

หลังจาก mount แล้วเราจะเห็น file ที่มีโครงสร้างเหมือน LSB เปี๊ยบ ทีนี้อยากจะ copy อะไรใส่ลงไปเพิ่มก็ทำได้ตามสบายครับ :) สำหรับการติดตั้งโปรแกรมเพิ่มเติมให้ chroot เข้าไปแล้วใช้ package manager ของ OS นั้นๆ เป็นตัวจัดการ เท่านี้เราก็แก้ไข Pre-Packaged เพื่อสร้าง services ใหม่ๆ บน Cloud ได้เอง ง่าย และรวดเร็วครับ :) ในภาคต่อไปจะเป็นการยืดหดของ Disk Image การทำ Image ให้สนับสนุนในทุกๆ Hypervisor (KVM,Xen,Vmware,VirtualBox) และการสร้าง Services บน Elastic Block Storage

ช่วงนี้กระแส Cloud Computing ในประเทศไทยกำลังมาแรงและการใช้งานก็กำลังทะยอยเพิ่มมากขึ้น หลายบริษัทต่างพยายามเข็นผลิตภัณฑ์ของตัวเองออกมาเพื่อบอกว่ามี Cloud Solution เช่นกัน สำหรับ how-to นี้คงไม่ได้พูดถึงเรื่อง Cloud หรือที่มาที่ไปของ Cloud มากนัก แต่ขอเปลี่ยนจากการติดตั้งมาเป็นการสร้างบริการบน Cloud กันเลยดีกว่า :) ในต่างประเทศ Software As A Services เป็นจุดเปลี่ยนในภาคอุตสาหกรรมซอฟต์แวร์มาก นอกจากจะลดต้นทุนการลงทุนเรื่องฮาร์ดแวร์ของผู้ประกอบการแล้ว การ provisioning ผ่านบริการบน IaaS ทำให้การลงทุนและระยะเวลาในการ deploy application ให้กับลูกค้าสั้นลงมาก เพียง 3 นาทีลูกค้าของคุณก็สามารถใช้งานซอฟต์แวร์ของคุณผ่าน Cloud Services ได้แล้ว เจ๋งมั๊ย วันนี้ผมจะมาแนะนำการสร้าง Eucalyptus Machine Image (EMI) สำหรับ Private Cloud ในองค์กรอย่าง Eucalyptus สำหรับท่านที่ใช้ Ubuntu Enterprise Cloud ก็สามารถใช้วิธีนี้ได้เช่นกันครับ

ก่อนจะเริ่มสร้าง Eucalyptus Machine Image มาทำความเข้าใจเกี่ยวกับ EMI กันก่อน Euclyptus ใช้ EMI ในการ deploy virtual machine ซึ่ง image นั้นจะต้องประกอบด้วย

  1. Ram Disk Image
  2. Kernal Image เป็นไฟล์ kernel เพื่อใช้ในการ boot vm ทั้งนี้ขึ้นอยู่กับว่าจะใช้ hyperviser แบบใด KVM, Xen
  3. Disk Image เป็น file system ที่ถูกบีบอัดภายในคือโครงสร้างของ Linux Standard Base พร้อม Service ที่เราใส่ลงไป

วันนี้จะมาแนะนำวิธีการสร้าง Service Image ของ media wiki กัน เอ้ามาลงมือกันเลย!

สร้าง disk image แบบ qcow2 ชื่อ image.img เพื่อใช้เป็นที่เก็บ OS และ media wiki ของเรา ดังนี้

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

รอสักพักเราจะได้ไฟล์ disk image ชื่อ image.img มา จากนั้น ติดตั้ง OS ลงไป โดยใช้คำสั่ง

sudo kvm -m 256 -cdrom ubuntu-9.04-server-amd64.iso -drive
file=image.img,if=scsi,index=0 -boot d
-net nic -net user -nographic -vnc :0

จากนั้นใช้ vncviewer ติดตั้ง OS จนเสร็จ จากนั้นเรียกใช้งาน disk image เพื่อคอนฟิกต่อดังนี้

sudo kvm -m 256 -drive file=image.img,if=scsi,index=0,boot=on -boot c
-net nic -net user -nographic -vnc :0

ติดตั้ง media wiki ต่อดังนี้

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mediawiki

เท่านี้เราก็ได้ disk image ที่มี media wiki เป็น services แล้ว จากนั้นมาจัดการเรื่อง image อีก 2 ตัวคือ ram disk และ kernal image เราสามารถใช้ kernel และ initrd.img จาก disk image ที่เราติดตั้งได้เลย โดยการคัดลอกออกมาไปยังเครื่องอื่น โดยใช้คำสั่ง

scp /boot/initrd.img-2.6.28-11-server user@A.B.C.D:
scp /boot/vmlinuz-2.6.28-11-server user@A.B.C.D:

เปลี่ยน A.B.C.D เป็น ip address ของเครื่องปลายทางที่คุณต้องการคัดลอกไป จากนั้นแก้ไข rc.local เพื่อลงทะเบียน public key อัตโนมัติขณะ boot VM ติดตั้ง curl เพิ่มเติมลงใน VM images ของคุณ

sudo apt-get install curl

จากนั้น เพิ่ม config ดังนี้ ลงใน rc.local ก่อน exit 0

-----

depmod -a
modprobe acpiphp

# simple attempt to get the user ssh key using the meta-data service
# assuming “user” is the username of an account that has been created

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

-----

ลบ network persistent rule จาก /etc/udev/rules.d ซึ่ง VM เมื่อ boot ขึ้นมาจะสร้าง interface eth0 โดย Eucalyptus

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

เท่านี้เราก็ได้ EMI ที่เป็นบริการ Media Wiki กันแล้ว ง่ายมั๊ย เอาล่ะการลงทะเบียน Kernel Image กับ Eucalyptus ใช้คำสั่งดังนี้

euca-bundle-image -i vmlinuz-2.6.28-11-server --kernel true
euca-upload-bundle -b mybucket -m /tmp/vmlinuz-2.6.28-11-server.manifest.xml
euca-register mybucket/vmlinuz-2.6.28-11-server.manifest.xml

คุณจะได้ค่า eki-XXXXXXXX ออกมา ให้จดเอาไว้ จากนั้นลงทะเบียน Ram Disk Image ดังนี้

euca-bundle-image -i initrd.img-2.6.28-11-server
euca-upload-bundle -b mybucket -m /tmp/initrd.img-2.6.28-11-server.manifest.xml
euca-register mybucket/initrd.img-2.6.28-11-server.manifest.xml

คุณจะได้ค่า eri-XXXXXXXX ออกมา ให้จดเอาไว้ จากนั้นลงทะเบียน Disk image ต่อ โดยใช้ eki และ eri ที่ได้มาลงทะเบียน

euca-bundle-image -i image.img --kernel eki-XXXXXXXX --ramdisk eri-XXXXXXXX
euca-upload-bundle -b mybucket -m /tmp/image.img.manifest.xml
euca-register mybucket/image.img.manifest.xml

เท่านี้เราก็ได้ EMI เอาไว้สร้าง instance กันแล้ว คราวหน้าจะมาแนะนำการสร้าง EMI จาก image ที่มีอยู่แล้ว เช่น Centos, Ubuntu เป็นต้น

โดน @anoochit เชียร์ให้เขียน Blog เรื่องงาน Contribute เพื่อให้คนที่ใช้ได้ติดตามและรู้ความเคลื่อนไหว (จริงแล้วคือ เผื่อจะมีคนอยากร่วมด้วย) ไอ้ครั้นจะเขียนทุกวันก็คนอ่านจะเบื่อ เลยจะรวบรวมเป็นรายอาทิตย์แล้วจะพยายามนำเสนอในทุกวันจันทร์นะครับ สำหรับอาทิตย์นี้ก็ขอเสนอเรื่องที่ทำเมื่ออาทิตย์ที่ผ่านมา

  • ถกเรื่องการใช้คำว่า ข้าพเจ้าแทนตัวเองในโปรแกรม (เผอิญเห็นใน Empathy) ผลที่ได้ คำแทนตัวใน Gnome ทั้งหมดถูกเปลี่ยนเป็นคำว่าฉัน (Commit แล้วเรียบร้อย รอถ่ายทอดลงสู่ Ubuntu)
  • ไล่ตาม Contact โครงการที่ต้นน้ำไม่ได้อยู่ใน Gnome และ Launchpad โดยที่ติดต่อไปแล้วก็มีของ VLC, Freedesktop, tsclient แต่ไม่ได้รับการติดต่อกลับทั้งจาก Coordinator และ Developer โดย @theppitak ให้เหตุผลว่า Developer จะไม่ได้ให้ความสำคัญกับการทำ l10n มากนัก เพราะต้อง Coding เป็นหลัก เพราะฉะนั้น ใจเย็นหน่อย
  • ไล่เก็บงานบางส่วนใน Gnome เท่าที่จำได้มี Gimp, เอ่อ นอกนั้นลืมแล้วอ่ะ
  • คิดว่าจะวางแผนในการทำงานใหม่ คือจะไล่แปลงานที่ยังไม่เสร็จที่เห็นได้ก่อนใน Ubuntu โดยจะเน้นงานที่อยู่ใน Gnome ก่อน แล้วถึงระยะเวลานึงค่อย Import เข้า Launchpad (กะว่าจะสักต้นเดือนหน้า)
  • ยังคงหาคนทำโครงการ Ubuntu manual ไม่ได้
  • แจ้งบั๊ก Firefox crash เมื่อใช้งาน Add-on Firefox (th) ยังไม่มีการตอบรับจากใคร
  • ลิสท์รายการโปรแกรมที่ยังแปลไม่เรียบร้อย แล้วก็รายการบั๊กที่เกี่ยวกับภาษาที่พบใน Ubuntu ไว้ ยังไม่รู้ว่าจะได้ทำอะไรต่อ แต่ลิสท์ไว้ก่อน ดูได้ที่ Google Docs

ของสัปดาห์ที่ผ่านมาที่ผมทำไปก็ประมาณนี้ครับ