วันพฤหัสบดีที่ 10 ตุลาคม พ.ศ. 2556

ติดตั้ง OpenStack แบบง่ายๆ กัน

ผมได้มีโอกาสไปเรียน Cloud Computing Specialist ทำให้ผมพบว่า การติดตั้ง OpenStack มันยุ่งจัง ยิ่ง service ของ OpenStack ยิ่งมากขึ้น ก็ต้อง config มากขึ้น อืมมม จริงๆ ก็ไม่ใช่เรื่องแปลกอะไรอ่ะนะ แต่สำหรับคนที่ต้องการสนองความอยากรู้อย่างผม เจ้าหมี Grizzly ก็เล่นเอาถอดใจเหมือนกัน วันนี้็เลยอยากมาแนะนำวิธีการติดตั้งแบบง่ายๆ สำหรับคนที่อยากรู้ว่า OpenStack เป็นยังไงเพื่อจะได้ทดลองเล่นได้ ก่อนจะถึงขั้นตอนติดตั้ง ต้องแนะนำสักหน่อยว่า OpenStack เป็น Cloud Management Platform ประกอบไปด้วย service ที่ทำหน้าที่แตกต่างกัน ดังนี้




  1. Nova ทำหน้าที่จัดการส่วน Compute และ Orchestration อะไรที่ต้องยุ่งกับ VM ก็ดูตัวนี้

  2. Glance ทำหน้าที่เป็นตัวจัดการ Image Respository ของ VM ที่เราจะเอามาใช้งาน

  3. Cinder ทำหน้าที่เป็นตัวจัดการ Block Storage เอาไว้แปะกับ VM เพิ่ม Disk และเก็บข้อมูล

  4. Keystone ทำหน้าที่เป็น Identity Management และ Tenant ให้กับระบบ

  5. Swift ทำหน้าที่เป็น Object Storage เก็บไฟล์ หรือทำ Archive Block Storage ได้

  6. Neutron ทำหน้าที่เป็น Network Sevice จัดการเรื่อง Virtual Switch/Router/Network ได้

  7. Ceilometer ทำหน้าที่เป็น Meter วัดการใช้งาน resources ไม่ว่าจะเป็น CPU, Memory, Storage และ Network ได้

  8. Heat ทำหน้าที่เป็น Orchestration Tools โดยเตรียม Config ต่างๆ ไว้เป็น Template ใช้ในการ Deploy App ได้ง่ายๆ อันนี้ลอกมาจาก Cloud Formation ของ Amazon AWS

  9. Horizon เป็น Dashboard ทำงานผ่านเว็บ ช่วยให้เราไม่ต้องใช้ Command Line เยอะจนเกินไป



สำหรับผู้ที่อยากลองเล่น OpenStack มี 3 ช่องทางให้เลือก คือ




  1. ติดตั้งเอง

  2. ลองเล่นจาก TryStack

  3. ลองเล่นจาก Cloud Provider อย่าง Rackspace, HP Cloud เป็นต้น




สำหรับผู้ที่อยากติดตั้งเองมีอีก 3 ช่องทางให้เลือก




  1. ติดตั้งจาก Package ที่ Linux Distribution มีให้แล้ว Config ทีละ Service ไปเรื่อยๆ Config เหนื่อย ถ้าขยันก็อาจเลือกวิธีนี้ได้ :)

  2. ติดตั้งจากเครื่องมือ DevOps อย่าง เช่น Chef, Puppet, Juju, Crowbar, Foreman เป็นต้น

  3. ติดตั้งจากเครื่องมือสำหรับนักพัฒนาอย่าง DevStack วิธีนี้เหมาะสำหรับ คนที่อยากรู้เฉยๆ restart เครื่องแล้ว service หายนะจ๊ะ



เยอะไปหรือเปล่า T_T เอาเป็นว่าผมเลือกวิธีง่ายๆ และสามารถเอาไปลองเล่นได้นานๆ วิธีที่ว่าคือ การติดตั้งผ่านเครื่องมือ DevOps ซึ่ง RedHat ได้เลือกใช้ Puppet มาเป็นเครื่องมือสำหรับการติดตั้ง OpenStack บน RedHat Enterprise Linux, Fedora 19+ และ CentOS มาดูวิธีการติดตั้งกัน สิ่งที่ต้องมี ได้แก่




  1. RedHat Enterprise Linux 6 Mini หรือ CentOS 6.4 Mini ก็ได้

  2. เครื่องคอมพิวเตอร์ที่มี CPU 2 Cores, RAM 2GB, HDD 160GB เป็นอย่างต่ำ มีสัก 2 เครื่อง ต่อ LAN และออกเน็ตได้



โดย LAN เป็น Network 192.168.0/24 เครื่อง Controller มี IP เป็น 192.168.0.10 เครื่อง Node 1 มี IP เป็น 192.168.0.11



เริ่มจาก Cluster Controller (All in One)



ติดตั้ง CentOS 6.4 Mini ให้เรียบร้อย จากนั้นติดตั้ง RedHat OpenStack Repository ดังนี้



sudo yum install -y http://rdo.fedorapeople.org/openstack-grizzly/rdo-release-grizzly.rpm



จากนั้นติดตั้ง PackStack เครื่องมือที่ใช้ติดตั้ง OpenStack



sudo yum install -y openstack-packstack



เพื่อความแน่ใจ reboot เครื่อง 1 รอบ ให้ Kernel ใหม่ทำงาน จากนั้นก็ ติดตั้ง OpenStack ได้เลยโดยใช้คำสั่ง



packstack --allinone --os-quantum-install=n



รอจนกว่าการติดตั้งจะเสร็จ ตัวติดตั้งจะแจ้งว่าเข้าใช้งาน Dashboard ได้จาก URL อะไร และ Username, Password อะไร



สำหรับเครื่อง Node ทำแบบเครื่อง Controller ติดตั้ง packstack จากนั้น copy file packstack-answer-XXXXXX-XXXX.txt มาไว้ที่เครื่อง Node แก้ไขไฟล์นี้ในส่วน CONFIG_NOVA_COMPUTE_PRIVIF, CONFIG_NOVA_NETWORK_PRIVIF จาก lo เป็น eth0 , CONFIG_NOVA_COMPUTE_HOSTS เป็น IP ของเครื่อง Node คือ 192.168.0.11 แก้ CONFIG_NOVA_NETWORK_FLOATRANGE จาก 10.3.4.0/22 เป็น 192.168.0.128/26 จากนั้นสั่งติดตั้งตาม answer file ดังนี้



packstack --answer-file=packstack-answer-XXXXXX-XXXX.txt



หลังจากการติดตั้งเสร็จ มาลอง Service กันหน่อย ใช้คำสั่ง



source keystone_admin



เพื่อเปิด console และตั้งค่า Environment ให้เครื่องมือบน Command Line จากนั้นใช้คำสั่ง



nova-manage service list



เพื่อดูว่า service ทั้งหมดทำงาน หรือใครอยากจะทดสอบ เป็นราย service โดยการ list ข้อมูลออกมาก็ได้ เช่น nova list, glance index, cinder list เป็นต้น ถ้าลองแล้วไม่มี Error ก็ถือว่าใช้ได้ ลืมบอกไปว่าถ้าจะทำให้ VM ที่สร้างขึ้นมา ต่อกับโลกภายนอกได้ ต้องตั้ง Floating IP แต่ PackStack กำหนดค่าให้เราสำเร็จ ซึ่งเป็นค่าที่ผิด T_T ต้องมาแก้กันก่อน โดยลบของเก่าออกก่อน



nova floating-ip-bulk-delete 10.3.4.0/22



และเพิ่ม Floating IP ที่ถูกต้องลงไป



nova floating-ip-bulk-create 192.168.0.128/26



จากนั้นสร้าง SSH Key สำหรับใช้งานกัน :)



nova keypair-add mykey > mykey.pem



ดาวน์โหลด VM Image สมมติว่าเป็น Ubuntu ละกัน



wget http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img



และลงทะเบียนเข้าไปใน Glance ดังนี้



glance image-create --name 'precise' --disk-format qcow2 --container-format bare --is-public true < precise-server-cloudimg-amd64-disk1.img



กำหนด security group ให้ ssh และ ping ได้



nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0



nova secgroup-add-rule default tcp 22 22 0.0.0.0/0



เมื่อมีของครบแล้วก็เริ่ม start vm กันได้ โดยใช้คำสั่ง



nova image-list



ดูว่า precise image id เป็นเท่าไร จากนั้นสั่ง boot ด้วยคำสั่ง



nova boot --image <image-id> --key-name mykey --flavor m1.small --security-groups default myprecise



ใช้คำสั่ง nova list ก็จะพบว่า vm ชื่อ myprecise กำลังเริ่ม start แล้ว เมื่อเข้าสู่สถานะ running ก็สามารถ ssh เข้าไปได้ อ้อ ก่อนอื่นกำหนด Floating IP ให้ VM เสียก่อน โดยใช้คำสั่ง



nova add-floating-ip myprecise 192.168.0.129



ใช้คำสั่ง nova list ดูว่า floating ip ไปเกาะกับ vm ของเราหรือยัง ถ้าเกาะเรียบร้อยแล้วก็สามารถ ssh เข้าไปได้โดยใช้คำสั่ง



ssh -i mykey.pem ubuntu@192.168.0.129



เอาแค่นี้ก่อน คุณสามารถใช้งาน OpenStack จาก Dashboard ได้นะครับ



สำหรับใครที่อยากใช้ OpenStack แบบจริงๆ จังๆ หรือต้องการทำ Private Cloud ใช้ในองค์กร แนะนำให้ไปเรียนกับ ClusterKit หรือ อ.อาณัติ หรือ ซื้อบริการ RedHat OpenStack, Ubuntu OpenStack ได้จากตัวแทนจำหน่ายใกล้บ้านท่านครับ :)


ไม่มีความคิดเห็น:

แสดงความคิดเห็น