สร้าง Cloud Services Image สำหรับ Eucalyptus ภาค 4

หลายท่านพยายามสร้าง Image เพื่อใช้ในการสร้างบริการของตัวเอง แต่ว่าไฟล์ Image มันมีขนาดเล็กไปหน่อย 😛 ทำให้เพิ่มโปรแกรมที่เราต้องการใส่ลงไปไม่ได้ งานเข้าเลยมั๊ยล่ะ อย่างนี้ต้องขยายครับ สำวิธีการขยายไฟล์ 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 แล้ว ง่ายๆ แค่นี้เอง 🙂

สร้าง Cloud Services Image สำหรับ Eucalyptus ภาค 3

คราวที่แล้วติดค้างเรื่องเอา 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

Continue reading สร้าง Cloud Services Image สำหรับ Eucalyptus ภาค 3

สร้าง Cloud Services Image สำหรับ Eucalyptus ภาค 2

ในครั้งที่แล้วเราสร้าง 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 ด้วย อันนี้เปลืองแรงโดยใช่เหตุ เข้าใจข้อกำหนดกันแล้วมาลงมือทำกันได้เลย Continue reading สร้าง Cloud Services Image สำหรับ Eucalyptus ภาค 2

สร้าง Cloud Services Image สำหรับ Eucalyptus ภาค 1

ช่วงนี้กระแส 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 กัน เอ้ามาลงมือกันเลย! Continue reading สร้าง Cloud Services Image สำหรับ Eucalyptus ภาค 1

ติด Alfresco Community 3.3 บน Ubuntu Server 10.04

Alfresco เป็นระบบจัดการเอกสารระดับ Enterprise ที่ได้รับความนิยมอย่างแพร่หลายด้วยความสามารถในการจัดการเอกสารที่เรียกได้ ว่าครบวงวรตั้งแต่การจัดการเอกสารพื้นฐาน รวมไปถึงระบบ workflow ที่กำหนดเส้นทางของเอกสาร การยืนยันเอกสาร นอกจากนี้ยังสามารถประยุกต์ใช้ในงานด้าน collaboration, record management, knowledge management, web content management หรือแม้กระทั่ง image management เรียกได้ว่า Alfresco อยู่ในระดับต้นๆ ของโปรแกรมจัดการงานเอกสารที่เป็นโอเพนซอร์สกันเลยทีเดียว
สำหรับการติดตั้ง Alfresco Community ในครั้งนี้ให้คุณติดตั้ง Ubuntu Server ให้เรียบร้อยพร้อมทั้งเรียกใช้ partner repository ใน /etc/apt/sources.list เพื่อใช้ติดตั้งแพคเกจ sun-java6-jdk ได้ ผมใช้ dms.example.com เป็น hostname มี IP Address เป็น 192.168.1.1/255.255.255.0 เปลี่ยนค่าข้างต้นตามค่าของคุณนะครับ เอาล่ะมาเริ่มติดตั้ง Alfresco กันเลย
แปลงร่างเป็น root กันก่อน

sudo -s

ติดตั้งโปรแกรมที่ต้องใช้

apt-get install mysql-server sun-java6-jdk imagemagick swftools openoffice.org-core openoffice.org-java-common openoffice.org-writer openoffice.org-impress openoffice.org-calc

คอนฟิดค่า JAVA_HOME ใน environment variable ที่ /etc/environment ดังนี้

JAVA_HOME="/usr/lib/jvm/java-6-sun/"

เรียกใช้ environment variable โดยไม่ต้อง logout แล้ว login ใหม่โดยใช้คำสั่ง

/etc/environment

กำหนดค่า default character set เป็น UTF-8 เพื่อใช้ภาษาที่ซับซ้อน ป้องกันการแสดงผลภาษาอื่นๆ ที่ไม่ใช้ภาษาอังกฤษเป็นตัวอักษร ????? แก้ไขไฟล์ /etc/myql/my.cnf แก้ไขตรง [mysqld] ดังตัวอย่างข้างล่าง

[mysqld]
#
# * Basic Settings
#
#
# * IMPORTANT
# If you make changes to these settings and your system uses apparmor, you may
# also need to also adjust /etc/apparmor.d/usr.sbin.mysqld.
#
default-character-set = utf8

จากนั้น restart MySQL โดยใช้คำสั่ง

/etc/init.d/mysql restart

จากนั้นตั้งค่าฐานข้อมูล MySQL ให้กับ Alfresco

mysql -u root -p

สร้างผู้ใช้ สร้างฐานข้อมูล alfresco และกำหนดสิทธิ์เข้าถึง ดังนี้

CREATE DATABASE alfresco DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
GRANT ALL PRIVILEGES ON alfresco.* TO alfresco@localhost IDENTIFIED BY 'alfresco';
GRANT SELECT,LOCK TABLES ON alfresco.* TO alfresco@localhost IDENTIFIED BY 'alfresco';
FLUSH PRIVILEGES;
quit;

เมื่อได้ฐานข้อมูลแล้วสร้างที่เก็บ alfresco กันครับ

mkdir -p /opt/alfresco

จากนั้นดาวน์โหลดและคลี่ไฟล์ลงในไดเรคทอรีที่สร้างขึ้น

cd /opt/alfresco
wget http://dl.alfresco.com/release/community/build-2765/alfresco-community-t... -O alfresco-community-tomcat-3.3.tar.gz
tar zxvf alfresco-community-tomcat-3.3.tar.gz
rm -f alfresco-community-tomcat-3.3.tar.gz

มาคอนฟิก Alfresco กันต่อ เปิดไฟล์ alfresco-global.properties มาแก้ไขด้วยคำสั่ง

nano /opt/alfresco/tomcat/shared/classes/alfresco-global.properties

มาดูส่วนตั้งค่าพื้นฐานกันก่อน เปลี่ยนค่าจาก

###############################
## Common Alfresco Properties #
###############################
#
# Sample custom content and index data location
#-------------
dir.root=./alf_data
#
# Sample database connection properties
#-------------
db.name=alfresco
db.username=alfresco
db.password=alfresco
db.host=localhost
db.port=3306
#
# External locations
#-------------
#ooo.exe=soffice
#ooo.enabled=false
#img.root=./ImageMagick
#swf.exe=./bin/pdf2swf

เป็นค่าดังนี้

###############################
## Common Alfresco Properties #
###############################
#
# Sample custom content and index data location
#-------------
root.dir=/opt/alfresco/alf_data
#
# Sample database connection properties
#-------------
db.name=alfresco
db.username=alfresco
db.password=alfresco
db.host=localhost
db.port=3306
#
# External locations
#-------------
ooo.exe=/usr/lib/openoffice/program/soffice
ooo.enabled=true
img.root=/usr
swf.exe=/usr/bin/pdf2swf

ถ้าต้องการใช้ Alfresco ผ่านทาง Windows Share ให้ตั้งค่า CIFS โดยเพิ่มค่า config ดังนี้

#
# CIFS Support
#------------------------
cifs.enabled=true
cifs.serverName=dms
cifs.ipv6.enabled=false
cifs.tcpipSMB.port=1445
cifs.netBIOSSMB.namePort=1137
cifs.netBIOSSMB.datagramPort=1138
cifs.netBIOSSMB.sessionPort=1139

เริ่ม Alfresco และเรียกใช้ OpenOffice.org แบบ services

/usr/lib/openoffice/program/soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -nologo -headless -nofirststartwizard &

จากนั้น อัพเดท firewall เพื่อ forward port ไปยัง Alfresco CIFS (กรณีที่ไม่ใช้ CIFS ไม่ต้องตั้งค่าก็ได้ครับ)

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 445 -j REDIRECT --to-ports 1445
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 139 -j REDIRECT --to-ports 1139
iptables -t nat -A PREROUTING -p udp -m udp --dport 137 -j REDIRECT --to-ports 1137
iptables -t nat -A PREROUTING -p udp -m udp --dport 138 -j REDIRECT --to-ports 1138

จากนั้น start Alfresco ดังนี้

cd /opt/alfresco
./alfresco.sh start

เข้าใช้งาน Alfresco DMS ผ่านทาง browser ที่ http://192.168.1.1:8080/alfresco
เข้าใช้งาน Alfresco Share ผ่านทาง browser ที่ http://192.168.1.1:8080/share
ล็อกอินด้วยชื่อผู้ใช้ admin และรหัสผ่าน admin
สำหรับการเรียกใช้งานผ่าน CIFS Share บน Windows เรียกใช้ดังนี้ \\dms\alfresco
ที่มา – How To Install Alfresco Community 3.3 On Ubuntu Server 10.04 (Lucid Lynx)
?