2nd Cloud OpenStack-Container Conference and Workshop 2016 จัดโดยThaiOpenStack Foundation ร่วมกับสำนักงานพัฒนาธุรกรรมทางอิเล็กทรอนิกส์ (องค์การมหาชน) (ETDA) และ สำนักงานรัฐบาลอิเล็กทรอนิกส์ (องค์การมหาชน) (สรอ.) (EGA) โดยงานจะกล่าวถึง Cloud Open Source Software ระดับโลกอย่าง OpenStack และ Container Software อย่าง Docker & Kubernetes งาน 2nd Cloud OpenStack-Container Conference and Workshop 2016 จะจัดขึ้นในวันที่ 22-23 กันยายนนี้ ณ อาคารไปรษณีย์กลาง บางรัก

สอบถามข้อมูลเพิ่มเติมได้ที่ http://bit.ly/2ndcloud804

ITBakery เปิดอบรมหลักสูตรสร้าง Private Cloud ในองค์กรด้วย OpenStack เนื้อหาครอบคลุมด้าน Cloud Computing เบื้องต้น การติดตั้งและบริหารจัดการ OpenStack การสร้าง Service Image การสร้าง Cloud Storage เพื่อใช้เป็นที่เก็บข้อมูลขนาดใหญ่ การใช้งาน Orchestration Service และการติดตามการใช้งานทรัพยากร

ระยะเวลาอบรมแบ่งเป็น 4 วัน ดังนี้

  • วันที่ 1: พื้นฐานการใช้งาน Linux เบื้องต้นสำหรับการใช้งาน OpenStack
  • วันที่ 2: แนะนำสถาปัตยกรรม OpenStack และ Multinode (Bash Script)
  • วันที่ 3: การติดตั้ง OpenStack Multi Node ด้วย Packstack ของ Redhat
  • วันที่ 4: เรียนรู้การเขียน Heat Template สำหรับการทำ Orchestration Service

เริ่มอบรมวันที่ 26 – 29 มกราคม 2559 เวลา 9.00 – 16.00 น. ณ ห้องอบรมคอมพิวเตอร์ สำนักงานส่งเสริมอุตสาหกรรมซอฟต์แวร์แห่งชาติ (องค์การมหาชน) มีค่าลงทะเบียนในการอบรมท่านละ 18,900 บาท เอกสารรายละเอียดหลักสูตร สำรองที่นั่งและสอบถามข้อมูลเพิ่มเติมได้ที่หมายเลขโทรศัพท์ 084 119 9935

การสร้าง Instance บน OpenStack สามารถสร้างได้ง่ายๆ ผ่าน Dashboard ในที่นี้จะใช้ Linux Image ขนาดเล็กที่ชื่อว่า CirrOS สามารถดาวน์โหลดได้จาก http://docs.openstack.org/image-guide/content/ch_obtaining_images.html

เลือก Create Image แล้วระบุค่าตามด้านล่าง แล้วกด Create Image

Name: cirros
Image Source: Image File 
(แล้วก็ Browse ไปที่ไฟล์ที่โหลดมา)
Format: QCOW2 - QEMU EMUlator

null


Continue reading

Key Pair เป็นส่วนสำคัญที่ผู้ใช้จะใช้ในการติดต่อเข้าใช้งาน Virtual Machine เป็นการสร้างกุญแจตามหลัก Public Key Infrastructure (PKI) จำเป็นจะต้องเตรียมไว้ก่อนการสร้าง Instance ถ้ามีอยู่ไม่จำเป็นต้องสร้างใหม่อีก เราสามารถใช้ Key เดียวกับหลาย Instance ได้ ที่รายการ Project → Compute → Access & Security ที่แท็ป Key Pairs เลือก Create Key Pair

null


Continue reading

OpenStack มีการจัดการความปลอดภัยให้แต่ละ instance ผ่าน Security Group ซึ่งเราสามารถกำหนดได้ว่า IP หรือ Protocol ใดสามารถผ่านเข้าออกในแต่ละ instance ได้ Security Group จะทำหน้าที่คล้าย Firewall ให้กับ instance นั่นเอง การกำหนดค่า Security Group ว่าจะเปิดพอร์ตอะไร ให้ไอพีอะไรบ้าง เรื่องความปลอดภัยบนคลาวด์เป็นเรื่องสำคัญ ความปลอดภัยเบื้องต้นบนอินเทอร์เน็ตคือการเปิดใช้งานพอร์ต (Port) ต่าง ๆ ตามแต่ละบริการ เช่น เว็บเซิร์ฟเวอร์จะใช้พอร์ต 80 เป็นต้น เราสามารถกำหนดได้ว่าจะเปิดพอร์ตอะไรบ้างได้ และสามารถบันทึกไว้เป็นรายการ เช่น รายการสำหรับเว็บเซิร์ฟเวอร์ให้เปิดพอร์ต 80, 443 เป็นต้น สำหรับเซิร์ฟเวอร์แบบอื่น ก็กำหนดเปิดพอร์ตที่จะใช้งานไว้ จะใช้งานเมื่อไร ก็บอกว่าให้ใช้ตามรายการนั้น ๆ ได้เลย

มาเริ่มกันเลยครับ ให้กดปุ่ม Create Security Group

null


Continue reading

OpenStack สามารถจัดการเครือข่ายในแต่ละ instance ได้ เราสามารถแบ่ง subnet เพื่อแยก network ของแต่ละ instance ออกจากกันได้ ทำให้ instance มีเครือข่ายของตัวเองได้ การจัดการ Network จะแบ่งเป็น 3 ส่วนดังนี้

  • สร้าง Internal Network
  • สร้าง Router
  • เชื่อมโยง Network ระหว่าง Internal และ External ผ่าน Router


Continue reading

หลังจากติดตั้งและปรับแต่งระบบเครือข่ายเรียบร้อยแล้ว เรามาดูวิธีการสร้างบัญชีผู้ใช้และ Tenant/Project กันบ้างครับ ให้ Login เข้าไปยัง Dashboard และเข้าไปที่รายการ Identity → Project เลือก Create Project

null


Continue reading

จากบทความที่แล้วเราได้เรียนรู้ การติดตั้ง OpenStack ด้วย RDO กันไปแล้ว คราวนี้เรามาปรับแต่งระบบเครือข่ายของ OpenStack โดยใช้ Bridge กัน Bridge นี้หมายถึงสะพาน สะพานที่จะเชื่อมต่อระหว่างระบบเครือข่ายในโลกจำลองของ OpenStack ออกมาโอภาปราศรัยกับโลกภายนอกกับอินเทอร์เน็ตจริง ๆ ได้ผ่านไอพีที่เครื่องคอมพิวเตอร์จริง ๆ ได้รับ ในนี้เราใช้บริการซอฟต์แวร์จัดการเครือข่ายที่เรียกว่า นิวตรอน (Neutron) และ Open vSwitch ที่จะมาช่วยสร้าง VLAN ให้เรา การคอนฟิกในขั้นตอนต่อไปนี้อ้างอิงจาก https://www.rdoproject.org/Neutron_with_existing_external_network

ก่อนอื่นสร้างไฟล์ /etc/sysconfig/network-scripts/ifcfg-br-ex ใส่ข้อมูลดังต่อไปนี้ลงไป

DEVICE=br-ex
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=10.0.2.15
NETMASK=255.255.255.0
GATEWAY=10.0.2.2
DNS1=10.0.2.3
ONBOOT=yes


Continue reading

OpenStack เป็น Cloud Operating System ใช้ในการสร้างบริการ Private Cloud ในรูปแบบบริการ Infrastructure as a Service การติดตั้ง OpenStack สามารถทำได้หลายวิธี สำหรับผู้ที่ต้องการทดลองเล่น OpenStack สามารถติดตั้งเพื่อทดลองใช้งานได้เบื้องต้นผ่าน Virtual Machine ได้ ครั้งนี้จะมาติดตั้ง RDO หรือ RedHat OpenStack กัน

ซอฟต์แวร์ที่เกี่ยวข้อง

ในเอกสารนี้เราจะติดตั้ง OpenStack บน Virtual Machine กัน ในนี้เราเลือกใช้ของดีที่ไม่คิดราคาอย่าง VirtualBox กัน แล้วค่อยติดตั้งลีนุกซ์ด้วย CentOS ในนั้น จากนั้นเราจะมาติดตั้ง OpenStack บน CentOS กันอีกทีครับ


Continue reading

หลังจากเตรียมความพร้อมก่อนติดตั้งกันไปแล้ว เรามาต่อในส่วน keystone กัน OpenStack Keystone เป็นบริการสำหรับการยืนยันตัวตน ก่อนที่เราจะทำอะไรเกี่ยวกับ OpenStack Components ต่าง ๆ เราต้องมีสิทธิ์ในการเข้าถึงก่อน โดย keystone เองก็มีส่วนประกอบ ดังนี้

  • Endpoints : บริการ OpenStack ทุกส่วน(Nova, Swift, Glance) ต้องรันผ่าน URL , port  ซึ่งการเข้าถึงผ่าน URL และ Port นั้น เราเรียกว่า endpoint
  • User : User ที่มีสิทธิ์ในการเข้าถึงบริการ OpenStack
  • Token : ชุดตัวอักษรหรือตัวเลขที่จะช่วยให้เข้าถึงแต่ละบริการ โดยจะขึ้นอยู่กับ role ของ user
  • Service : แต่ละ component ที่มีการเชื่อมต่อผ่าน keystone
  • Tenant : เป็นกลุ่มของ user
  • Role: ระดับการเข้าถึงของแต่ละ user

เมื่อเรารู้จักส่วนประกอบของ keystone แล้วก็มาเริ่มติดตั้งกัน คำสั่งสำหรับติดตั้ง keystone คือ

sudo apt-get install keystone python-keystone python-keystoneclient

หลังจากติดตั้งเรียบร้อยแล้วก็มาแก้ไขค่า keystone.conf กัน โดยเข้าไปแก้ไขใน /etc/keystone/keystone.conf ดังนี้

  1. เปิดคอมเมนต์ admin_token = ADMIN และแก้ไขค่า admin_token เป็นอะไรก็ได้  ในที่นี้จะใช้ admin admin_token = admin
  2. เนื่องจากเราใช้ MySQL Database ให้แก้ไขค่า connection เพื่อเชื่อมต่อ database โดยแก้ไขค่าจาก
  3. connection = sqlite:////var/lib/keystone/keystone.db

    เป็น

    connection=mysql://KEYSTONE_USER:KEYSTONE_DBPASS@IPADDRESS/keystone

    ดังตัวอย่าง

    connection = mysql://keystonedbadmin:keystonesecret@192.168.102.137/keystone

    หลังจากแก้ไขค่าคอนฟิกไฟล์แล้วก็ต้องรีสตาร์ท service เพื่อปรับค่าที่ได้แก้ไขไปโดย

    sudo service keystone restart

    จากนั้นสร้าง keystone database schema โดยใช้คำสั่ง

    sudo keystone-manage db_sync

    และทำการเซตค่า environment ในไฟล์ ~/.bashrc โดย default admin port คือ 35357  ดังนี้

    export SERVICE_TOKEN=admin
    export SERVICE_ENDPOINT="http://localhost:35357/v2.0"

    environment variable

    เมื่อติดตั้งปรับแต่ง keystone เรียบร้อยแล้วต่อไปเราต้องใส่ข้อมูลให้กับ keystone โดยมี 6 ส่วนดังที่ได้อธิบายไปด้านบน ดังนี้

    1. Tenants
    2. Users
    3. Roles
    4. Role ของ User ใน Tenants
    5. Services
    6. Endpoint ของ service

    การสร้าง Tenants

    การสร้าง Tenants ทำได้โดยใช้คำสั่ง keystone tenant-create –name TENANT_NAME ซึ่งตัวอย่างจะสร้าง 2 tenants คือ admin และ service

    สร้าง tenants admin โดยใช้คำสั่ง ดังรูป
    Create tenant

    สร้าง tenants service โดยใช้คำสั่ง ดังรูป
    Create tenant service

    การสร้าง User

    ในตัวอย่างเราจะสร้าง users 4 user ได้แก่ admin, nova, glance และ swift โดยใช้คำสั่งดังนี้

    keystone user-create --name admin --pass admin --email admin@osdev.co.th
    keystone user-create --name nova --pass nova --email nova@osdev.co.th
    keystone user-create --name glance --pass glance --email glance@osdev.co.th
    keystone user-create --name swift --pass swift --email swift@osdev.co.th
    รูปด้านล่างคือตัวอย่างการสร้าง User
    Create User admin

    การสร้างกฏ (Roles)

    ในตัวอย่างจะทำการสร้างกฏ 2 กฏ คือ admin และ Member ดังนี้

    keystone role-create --name admin
    keystone role-create --name Member

    รูปแสดงตัวอย่างการสร้างกฏ
    Create admin role

    การแสดงรายการ Tenants, Users และ Roles

    เราสามารถเรียกดู Tenants, Users และ Roles ที่สร้างได้โดยใช้คำสั่ง ดังนี้

    List Tenants:
    List Tenants
    List Users:
    User List
    List Roles:
    List Roles
    *** ให้สังเกตเลข id ซึ่งเราจะใช้เมื่อระบุ role ให้ user ในแต่ละ tenant

    การเพิ่ม Roles สำหรับ Users ใน Tenants

    ต่อไปเราจะมาเพิ่ม role ให้กับ user ที่เราสร้างขึ้น โดยการใช้คำสั่ง ดังนี้

    keystone user-role-add --user $USER_ID --role $ROLE_ID --tenant_id $TENANT_ID

    จะเห็นว่าเราต้องใช้ค่า “id” ซึ่งเราได้มาจากคำสั่ง keystone user-list, keystone tenant-list, keystone role-list ที่แสดงให้ดูก่อนหน้านี้

    โดยเราจะเพิ่มกฏ ‘admin’ ให้กับ user ‘admin’ ใน tenant ‘admin’ ดังตัวอย่าง

    keystone user-role-add --user b69096ec14a5495ebedb4abf0cf9dade --role 29517c06e7024316a1d47a23787b3943 --tenant_id c82a58d2957d43c2a86a7aadbf16f031

    ต่อไปเราจะเพิ่ม role admin ให้ user ‘nova’, ‘glance’ และ ‘swift’ ใน tenant service จะใช้คำสั่งดังนี้
    assign role

    การสร้าง Services

    ต่อไปเราจะมาสร้าง services ซึ่ง user จะตรวจสอบก่อนใช้บริการ ในตัวอย่างจะสร้าง service nova-compute, nova-volume, glance, swift, keystone และ ec2 โดยคำสั่งที่จะใช้ คือ

    keystone service-create --name service_name --type service_type --description ’Description of the service’
    ดังนี้

    keystone service-create --name nova --type compute --description 'OpenStack Compute Service'
    keystone service-create --name volume --type volume --description 'OpenStack Volume Service'
    keystone service-create --name glance --type image --description 'OpenStack Image Service'
    keystone service-create --name swift --type object-store --description 'OpenStack Storage Service'
    keystone service-create --name keystone --type identity --description 'OpenStack Identity Service'
    keystone service-create --name ec2 --type ec2 --description 'EC2 Service'

    แต่ละ service ที่สร้างก็จะได้ ‘id’ เฉพาะ เพื่อใช้ระบุ endpoint ของ service แต่ละตัว โดยใช้คำสั่ง keystone service-list ดังนี้
    Ketstone service list

    การสร้าง Endpoint สำหรับ Service

    endpoint สำหรับ service สร้างโดยใช้คำสั่งดังนี้

    keystone endpoint-create --region region_name --service_id service_id --publicurl public_url --adminurl admin_url --internalurl internal_url

    การสร้าง endpoint สำหรับ nova-compute ใช้คำสั่งดังนี้

    keystone endpoint-create --region myregion --service_id 5013c9cfcd344ed6a3f11a098b20dd10 --publicurl 'http://192.168.0.102:8776/v1/$(tenant_id)s' --adminurl 'http://192.168.0.102:8774/v2/$(tenant_id)s' --internalurl 'http://192.168.0.102:8774/v2/$(tenant_id)s'

    ตัวอย่าง ดังรูป
    ketstone endpoint create
    จากนั้นก็สร้าง endpoint ของ service แต่ละอันให้ครบ ดังนี้

    endpoint สำหรับ nova-volume:

    keystone endpoint-create --region myregion --service_id d842895c8e144a428b70a48fbf57d04e --publicurl 'http://192.168.0.102:8776/v1/$(tenant_id)s' --adminurl 'http://192.168.0.102:8774/v2/$(tenant_id)s' --internalurl 'http://192.168.0.102:8774/v2/$(tenant_id)s'

    endpoint สำหรับ glance:

    keystone endpoint-create --region myregion --service_id 4588944458bc482f83d897fe97157fb2 --publicurl 'http://192.168.0.102:8776/v1/$(tenant_id)s' --adminurl 'http://192.168.0.102:8774/v2/$(tenant_id)s' --internalurl 'http://192.168.0.102:8774/v2/$(tenant_id)s'

    endpoint สำหรับ swift:

    keystone endpoint-create --region myregion --service_id b60e854ac822454dac56563b13ce8717 --publicurl 'http://192.168.0.102:8776/v1/$(tenant_id)s' --adminurl 'http://192.168.0.102:8774/v2/$(tenant_id)s' --internalurl 'http://192.168.0.102:8774/v2/$(tenant_id)s'

    endpoint สำหรับ keystone:

    keystone endpoint-create --region myregion --service_id 9337b0a9102a4e6195013ae42eb6f446 --publicurl 'http://192.168.0.102:8776/v1/$(tenant_id)s' --adminurl 'http://192.168.0.102:8774/v2/$(tenant_id)s' --internalurl 'http://192.168.0.102:8774/v2/$(tenant_id)s'

    endpoint สำหรับ ec2:

    keystone endpoint-create --region myregion --service_id bdc9d51883584837b75f59ab7ad16703 --publicurl 'http://192.168.0.102:8776/v1/$(tenant_id)s' --adminurl 'http://192.168.0.102:8774/v2/$(tenant_id)s' --internalurl 'http://192.168.0.102:8774/v2/$(tenant_id)s'

    เรียบร้อยสำหรับ keystone ในบทความต่อไปเราจะมาติดตั้ง Glance กันต่อ