อะไรก็เกิดขึ้นได้ บางครั้งติดตั้ง Zimbra ไว้ เวลาผ่านไปจะเข้าใช้งานอีกที เอ๊ะ ตั้งพาสเวิร์ดอะไรไว้หนอ วันนี้เราจะมาดูวิธีการรีเซตพาสเวิร์ดสำหรับผู้ดูแลระบบ Zimbra กัน
ก่อนอื่น เข้าระบบด้วย user zimbra
su - zimbra
ต่อไป เรามาดูว่า Admin ทั้งหมดใน Zimbra Server เรามีใครบ้าง โดยใช้คำสั่ง
zmprov gaaa
ตัวอย่าง ดังรูป
Zimbra List Admin User
Continue reading

Zimbra Collaboration Open Source Edition (ZCS) คือระบบ Mail Server ที่เป็นโอเพนซอร์ส  โดย Zimbra ไม่ได้มีเฉพาะฟังก์ชันอีเมลเท่านั้น แต่ยังมี calendar, address book, file-sharing และ tasks ไว้สำหรับทำงานร่วมกันในองค์กรได้อย่างสะดวกอีกด้วย

ขออธิบายถึงรูปแบบของเวอร์ชันที่ Zimbra เปิดให้บริการเล็กน้อยนะ ซึ่งมีด้วยกัน 3 แบบได้แก่

  1. ZCS Network Edition ตัวนี้เป็นบริการของ Zimbra ที่มีค่าไลเซนส์ โดยจะกำหนดค่าบริการเป็นแบบ Starter (สูงสุด 15 users), แบบ Standard และ Professional (ความสามารถเพิ่มเติมบนเวอร์ชันนี้ mobile, Outlook sync, connector for Apple iSync)
  2. ZCS hosted email อันนี้เป็นบริการ Host จากทาง Zimbra
  3. ZCS Open Source Edition เวอร์ชันนี้เป็นเวอร์ชันโอเพนซอร์สที่เราจะพูดถึงกันในบทความนี้


Continue reading

ถ้าจะให้พูดถึง Briefcase ท่านที่ไม่เคยใช้งานอาจจะนึกไม่ออกว่าคืออะไร เอาไว้ทำอะไร ถ้าจะบอกให้นึกถึง Google Drive/Docs น่าจะทำให้พอนึกออกบ้างนะคะ

Briefcase ใช้สำหรับสร้างเอกสารออนไลน์ แชร์ให้คนอื่นเข้ามาดูเข้ามาแก้ไขได้ รวมถึงจัดเก็บเอกสารออนไลน์ ทำให้เราสามารถเข้าถึงเอกสารได้ไม่ว่าจะอยู่ที่ไหนก็ตาม

แต่ถ้าเราติดตั้ง Zimbra Open Source Edition 8.XX จะไม่เห็นกระเป๋าเอกสารนี้เนื่องจากถูก disable โดย default ดังรูป
diable briefcase
ทีนี้เราจะมาเปิดกระเป๋าเอกสารใช้งานกัน ก่อนอื่น เข้าระบบด้วย user zimbra ก่อน โดย
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 กันต่อ

ก่อนที่จะทำความรู้จัก OpenStack นั้น เราต้องทำความรู้จักเทคโนโลยี cloud กันก่อน

ถ้าพูดถึง Cloud Computing หลายคนอาจจะนึกไม่ออกว่าคืออะไร คำแปลสุดฮิตของเจ้า Cloud Computing ก็คือ การประมวลผลบนกลุ่มเมฆ พูดง่าย ๆ ก็คือ บริการที่ให้เราเลือกใช้ทรัพยากรคอมพิวเตอร์ได้ตามความต้องการ โดยสามารถปรับเพิ่ม ลด ปริมาณการใช้งานได้ง่ายและรวดเร็วผ่าน web interface

ซึ่งรูปแบบบริการ Cloud Computing ก็จะแบ่งได้ 3 รูปแบบ ดังนี้

  • Infrastructure as a Service (IaaS) – ให้บริการในส่วน Physical หรือทรัพยากรคอมพิวเตอร์ เช่น CPU, Memory, Operating System, Storage เป็นต้น ตัวอย่าง Amazon
  • Platform as a Service (PaaS) – ให้บริการในส่วนทรัพยากรและเครื่องมือสำหรับนักพัฒนา เช่น Google Apps Engine, IBM Mashup Hub, Microsoft Azure
  • Software as a Service (SaaS) – ให้บริการในส่วนข้อมูลหรือ Application เช่น Google Apps, Picasa, Youtube, Facebook


Continue reading

ก่อนที่จะติดตั้ง OpenStack นั้น เราจะเตรียมความพร้อมก่อน ไม่ว่าจะเป็น OS, Networking, NTP Server และ Database ดังนี้

1. ในส่วน OS

  • ติดตั้ง Ubuntu  12.04/14.04 LTS Server เวอร์ชัน 64 bit
  • create admin user
  • เซตค่า Network
  • ติดตั้งเฉพาะแพคเกจ Openssh-server

หลังจากติดตั้งเสร็จเรียบร้อยแล้วให้ update, upgrade ระบบ ดังนี้

sudo apt-get update
sudo apt-get upgrade

2. การปรับแต่ง Network

แก้ไขไฟล์ /etc/network/interfaces ดังตัวอย่าง 2 network interface

หลังจากปรับแต่งคอนฟิกไฟล์เนตเวิร์คเรียบร้อยแล้ว ต้องทำการ Restart network เพื่อปรับค่าใหม่ ดังนี้
sudo /etc/init.d/networking restart

3. NTP Server

ต่อไปเรามาทำในส่วน NTP กันต่อ โดย NTP มีไว้เพื่อ Synchronize เวลาของเครื่องบนเครือข่าย เพื่อให้เครื่องอื่นมา sync เวลาให้ตรงกัน กรณีไม่มี NTP Server เองก็สามารถใช้ Server อื่นได้ ดังตัวอย่างใช้ Server ของ ntp.ubuntu.com เป็นต้น

ติดตั้ง NTP package

sudo apt-get install ntp

แก้ไขไฟล์ /etc/ntp.conf โดยเพิ่ม server ที่ต้องการ ซึ่งถ้าเพิ่ม external server และไม่สามารถเชื่อมต่ออินเตอร์เน็ตได้ NTP server จะใช้เวลาตาม hardware clock เช่น

ntp

หลังจากแก้ไขคอนฟิกไฟล์เรียบร้อยก็ทำการ restart NTP server โดยใช้คำสั่ง

sudo service ntp restart

4. Database
โดยปกติ OpenStack ต้องใช้ Database ในการเก็บข้อมูล เราสามารถใช้ MySQL, PostgreSQL หรือ SQLite สำหรับ Nova และ Glance ในที่นี้จะยกตัวอย่างเป็น MySQL
ติดตั้ง mysql-server และ python-mysqldb (ตั้งรหัสผ่าน ในที่นี้สมมุติเป็น dbpassword)

sudo apt-get install mysql-server python-mysqldb

เปลี่ยนค่า bind address เพื่อให้เครื่องอื่นติดต่อ MySQL เราได้ โดยเปลี่ยน จาก 127.0.0.1 เป็น 0.0.0.0 ใน /etc/mysql/my.cnf ดังนี้

bind-address = 0.0.0.0

Restart MySQL server เพื่อปรับปรุงค่าใหม่ที่ได้แก้ไขไป โดยใช้คำสั่ง

sudo service mysql restart

เมื่อเราติดตั้ง MySQL เรียบร้อยแล้ว ก็มาสร้างฐานข้อมูลสำหรับ nova, glance และ keystone กัน
สร้างฐานข้อมูล, user , password พร้อม grant สิทธิ์สำหรับ nova

sudo mysql -uroot -pdbpassword -e ’CREATE DATABASE nova;’
sudo mysql -uroot -pdbpassword -e ’CREATE USER novadbadmin;’  #สร้าง user ชื่อ novadbadmin
sudo mysql -uroot -pdbpassword -e "GRANT ALL PRIVILEGES ON nova.* TO ’novadbadmin’@’%’;"
sudo mysql -uroot -pdbpassword -e "SET PASSWORD FOR ’novadbadmin’@’%’ = PASSWORD(’novasecret’);"

สร้างฐานข้อมูล, user , password พร้อม grant สิทธิ์สำหรับ glance

sudo mysql -uroot -pdbpassword -e ’CREATE DATABASE glance;’
sudo mysql -uroot -pdbpassword -e ’CREATE USER glancedbadmin;’  #สร้าง user ชื่อ glancedbadmin
sudo mysql -uroot -pdbpassword -e "GRANT ALL PRIVILEGES ON glance.* TO ’glancedbadmin’@’%’;"
sudo mysql -uroot -pdbpassword -e "SET PASSWORD FOR ’glancedbadmin’@’%’ = PASSWORD(’glancesecret’);"

สร้างฐานข้อมูล, user , password พร้อม grant สิทธิ์สำหรับ keystone

sudo mysql -uroot -pdbpassword -e ’CREATE DATABASE keystone;’
sudo mysql -uroot -pdbpassword -e ’CREATE USER keystonedbadmin;’ #สร้าง user ชื่อ keystonedbadmin
sudo mysql -uroot -pdbpassword -e "GRANT ALL PRIVILEGES ON keystone.* TO ’keystonedbadmin’@’%’;"
sudo mysql -uroot -pdbpassword -e "SET PASSWORD FOR ’keystonedbadmin’@’%’ = PASSWORD(’keystonesecret’);"

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