OpenStack All-In-One — PackStack ตอนที่ 1

ถ้าจะมีคำถามว่า เลือกใช้ technology ใดที่เหมาะสำหรับ OpenStack … คำตอบจากมุมมองของผมคือ “ไม่มีอะไรที่ดีที่สุด” เพียงแต่ว่า ผมอยากชี้ชวนให้พิจารณาองค์ประกอบหลาย ๆ ที่จะรวมกันเป็น OpenStack Solution หนึ่งในปัจจัยที่ต้องพิจารณาคือระบบปฏิบัติการ เนื่องจากพื้นฐานของความต้องการของ OpenStack เปิดกว้างมาก เนื่องจาก OpenStack ถูกพัฒนามาจากภาษา Python ซึ่งสามารถทำงานได้บนระบบปฏิบัติ Linux ซึ่ง Linux เองก็ถูกพัฒนาในรูปแบบที่หลายหลาก

PackStack เป็นเครื่องมือที่ช่วยให้ติดตั้ง OpenStack ได้ง่ายขึ้น โดยใช้ Puppet เป็นตัวช่วยการในติดตั้งโดยการ SSH ไปยัง Server เพื่อติดการติดตั้ง OpenStack ให้โดยอัตโนมัติ และรองรับเฉพาะ Linux ในตระกูล CentOS และ Red Hat Enterprise Linux (RHEL) เท่านั้น แต่อีกสิ่งที่ต้องเข้าใจข้อจำกัดของ PackStack คือ PackStack เองถูกออกแบบให้เหมาะสำหรับการทำ Proof of Concept (POC) เท่านั้น ไม่แนะนำให้ใช้ PackStack ไปติดตั้งสำหรับ Enterprise

ในตอนที่ 1 จะเป็นเนื้อหารายละเอียดในการติดตั้ง OpenStack All-In-One โดยใช้ PackStack โดยที่ผมจะแนะนำการติดตั้ง เฉพาะ Module หลักของ OpenStack ที่จำเป็นในการทดสอบและเป็นพื้นฐานในการเรียนรู้ในเบื้องต้น เพื่อให้ใช้ทรัพยากร (CPU และ ​ Memory) ให้น้อยที่สุด

ก่อนเริ่มติดตั้ง OpenStack ต้องเตรียมทรัพยากรที่จำเป็นในเบื้องต้นก่อน ซึ่งระบบที่ผมใช้ในการทดสอบจะมี 4 vCPU, 8 GB RAM และ Disk 60 GB ติดตั้ง CentOS 7.4 แบบ “Minimum Install” โดยที่ Network ใน subnet 192.168.51.0/24

Test Environment

ขั้นตอนในการติดตั้ง OpenStack All-In-One โดยใช้ packstack มีขั้นตอนดังนี้

  • ในระบบที่ไม่ได้กำหนด locale เป็นภาษาอังกฤษ ให้กำหนดโดยเพิ่ม LANG และ LC_ALL ไปที่ /etc/environment
LANG=en_US.utf-8
LC_ALL=en_US.utf-8
  • ติดตั้ง Repository ของ OpenStack Pike, update ระบบปฏิบัติการ และ ติดตั้ง packstack
# yum install -y centos-release-openstack-pike
# yum update -y
# yum install -y openstack-packstack
  • ปรับค่าของ service ต่าง
# systemctl disable firewalld
# systemctl stop firewalld
# systemctl disable NetworkManager
# systemctl stop NetworkManager
# systemctl enable network
# systemctl start network
  • ติดตั้ง OpenStack โดยเลือกติดตั้งเฉพาะ module ที่จำเป็นเท่านั้น โดยที่ต้องแทนค่าในส่วนของ Network Interface ในคำสั่งให้ถูกต้อง
    ** ในคำสั่งด้านล่างจำเป็นต้องแก้ในส่วนที่ระบุไว้ว่าเป็น external interface ให้ถูกต้อง
# export LC_ALL=en_US.UTF-8;packstack --allinone --os-debug-mode=n --default-password=redhat --os-swift-install=n --os-manila-install=n --os-ceilometer-install=n --os-aodh-install=n --os-gnocchi-install=n --os-panko-install=n --os-sahara-install=n --os-heat-install=n --os-magnum-install=n --os-trove-install=n --os-ironic-install=n --provision-demo=n --os-neutron-ovs-bridge-mappings=extnet:br-ex --os-neutron-ovs-bridge-interfaces=br-ex:<external interface เช่น eth0,ens33> --os-neutron-ml2-type-drivers=vxlan,flat
  • การติดตั้งจะใช้เวลาในการติดตั้งพอสมควรขึ้นอยู่ความประสิทธิภาพของเครื่อง และความเร็ว internet ซึ่งหลังจากติดตั้งเสร็จเรียบร้อบแล้ว จะพบข้อความแสดงผลว่า “Installation completed successfully”
**** Installation completed successfully ******
Additional information:
* A new answerfile was created in: /root/packstack-answers-20171027–052258.txt
* Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
* File /root/keystonerc_admin has been created on OpenStack client host 192.168.51.169. To use the command line tools you need to source the file.
* To access the OpenStack Dashboard browse to http://192.168.51.169/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
* Because of the kernel update the host 192.168.51.169 requires reboot.
* The installation log file is available at: /var/tmp/packstack/20171027–052258-iBJAFB/openstack-setup.log
* The generated manifests are available at: /var/tmp/packstack/20171027–052258-iBJAFB/manifests
  • หลังจากติดตั้งเสร็จเรียบร้อย สามารถเรียกใช้งาน Horizon ได้จาก URL ที่แสดงในข้อความหลังจากติดตั้งเสร็จเรียบร้อยแล้ว โดยที่ username เป็น admin และ password เป็น redhat
OpenStack Pike :: login page
OpenStack Pike :: Dashboard

ตอนที่ 2 : OpenStack Command Line ในการทดสอบ

อ้างอิง
https://wiki.openstack.org/wiki/Packstack
https://www.rdoproject.org/install/packstack/