Instalasi & Konfigurasi Openstack Liberty di Ubuntu 14.04 LTS – Part 1

Assalamualaikum rek, kali ini ane mau berbagi bagaimana caranya melakukan konfigurasi openstack versi Liberty di Ubuntu 14.04 LTS. Tentu saja postingan ane ini dibuat saat ane udah mengikuti pesantren sysadmin yang ane ceritakan pada postingan sebelumnya.

Oke langsung saja. Mungkin diantara kalian semua banyak yang bertanya-tanya apa sih itu Openstack? Permainan atau game semacam apakah itu? Hehe. Santai gaes buat kalian yang penasaran apa itu openstack itu? Kalian bisa langsung aja Googling atau mengunjungi situs resminya di openstack.org tapi tenang ane juga bakalan jelasin kok tapi secara singkat aja yaa.

Jadi openstack itu sebuah software platform yang dimana openstack ini digunakan untuk cloud computing dan kebanyakan sih dideploy sebagai IaaS (Infrastructura-as-a-Service) tapi openstack dapat digunakan pula untuk kebutuhan Software Defined Networking. Nah, kelebihan dari openstack yaitu yang paling utama adalah gratis dan opensource. Untuk menjalankan openstack ini dibutuhkan beberapa service. Berikut gambaran arsitektur dari openstack OpenStack Architecture

Untuk lebih detailnya mari kita ngelab sajaa haha, nah karena ngelab dengan perangkat sungguhan itu harus memiliki hardware dengan speksifikasi super maka kita akan ngelab secara sederhana menggunakan virtualbox. Bagi kalian yang belum memiliki virtualbox dan juga extension virtualbox silahkan download pada situs resminya di sini. Kemudian buat rancangan topologi seperti ini.

Openstack


LAB 1 – Konfigurasi host dan network pada node controller
Nah, kemudian jalankan virtualbox serta install terlebih dahulu OS ubuntu 14.04 LTS setelah itu agar kita tidak mengulang instalasi ubuntu pada mesin virtual yang lain, lakukan cloning pada mesin virtual yang pertama selesai instalasi.

0

Kemudian, atur jaringannya sesuai gambar berikut. 0_10_2

Jika sudah silahkan jalankan VM, setelah itu rubah hosts, hostname serta IP address interface.
# nano /etc/hosts

# nano /etc/hostname

11_1

# nano /etc/network/interfaces

2

LAB 2 – Update & Upgrade Paket Openstack Mitaka

Selanjutnya reboot. Jika sudah tambahkan repository Openstack Mitaka :

#apt-get install software-properties-common
#add-apt-repository cloud-archive:mitaka

Setelah ditambahkan repository lakukan update dan upgrade package, jika sudah reboot kembali
# apt-get update && apt-get dist-upgrade

LAB 3 – Konfigurasi NTP Server

Abis itu install openstack client dan chrony sebagai NTP server, tujuan diinstallnya NTP ini yaitu agar node controller dengan node yang lain itu sinkron dalam melakukan jobnya
# apt-get install python-openstackclient chrony

Lakukan konfigurasi NTP dengan mengedit file chrony.conf kemudian simpan

# nano /etc/chrony/chrony.conf3

Kemudian restart chrony, dan lakukan verifikasi setelah itu
# service chrony restart
# chronyc sources

4

LAB 4 – Konfigurasi MariaDB Server

Selanjutnya install mariadb server, pada saat instalasi akan muncul dialog box untuk mengisikan password admin database isikan saja dengan password kalian masing-masing:

# apt-get install mariadb-server python-pymysql

5

Copy file my.cnf dan taruh di folder /etc/mysql/conf.d/mysqld_openstack.cnf

# cd /etc/mysql
# cp my.cnf conf.d/mysqld_openstack.cnf
# nano conf.d/mysqld_openstack.cnf

edit file mysqld_openstack.conf dan tambahkan seperti ini

66_1

Simpan jika sudah, kemudian ubah file my.cnf

# nano my.cnf

6_1

Restart service mysql nya :

# service mysql restart

LAB 5 – Konfigurasi NoSQL Database

Selanjutnya konfigurasi telemetry (NoSQL database). Install dulu paket-paket yang dibutuhkan.

# apt-get install mongodb-server mongodb-clients python-pymongo

Kemudian ubah file konfigurasi mongodb, ubah dan tambahkan seperti dibawah ini

# nano /etc/mongodb.conf

Screenshot_1

Simpan dan restart mongodb dan hapus konfigurasi journal mongodb

# service mongodb stop
# rm /var/lib/mongodb/journal/prealloc.*
# service mongodb start

LAB 6 – Konfigurasi RabbitMQ

Selanjutnya kita akan mengkonfigurasi RabbitMQ, RabbitMQ ini berfungsi sebagai pesan antrian sehingga openstack dalam melakukan prosesnya berdasarkan urutan serta informasi tentang service yang dibutuhkan sebelum menjalankan perintah. Langsung saja untuk mengkonfigurasi RabbitMQ mari kita install terlebih dahulu paket-paket yang dibutuhkan.

# apt-get install rabbitmq-server

Buat user openstack pada rabbitMQ, ubah bagian RABBIT_PASS dengan password yang kalian inginkan.

# rabbitmqctl add_user openstack RABBIT_PASS
Creating user "openstack" ...
...done.

Tambahkan permission agar user openstack dapat melakukan konfigurasi, edit ataupun baca.

# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...
...done.

Identity service membutuhkan memcached untuk men-cache token dan secara umum memcached ini berjalan pada node controller. Maka sekalian saja kita install

# apt-get install memcached python-memcache

Kemudian ubah IP managemen pada memcache dengan IP managemen

# nano /etc/memcached.conf
-l 10.0.0.10 #ubah seperti ini
# service memcached restart

LAB 7 – Membuat Database Keystone

Selanjutnya kita akan mengerjakan lab dengan service keystone (Identity). Service ini merupakan bagian yang sangat penting dari openstack, karena service ini menyediakan single point dimana semuaya terintegrasi dari memanage autentikasi, autorisasi hingga pengelolaan service katalog. Pada openstack, service identity ini didasarkan pada API, sehingga menyediakan pula informasi mengenai user.

Sebelum menginstall paket-paketnya, mari kita buat dulu user database untuk keystone pada node controller.

$ mysql -u root -p
CREATE DATABASE keystone

Berikan akses user keystone pada database keystone, gantilah KEYSTONE_DBPASS dengan password user database sesuai keinginan kalian.

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
  IDENTIFIED BY 'KEYSTONE_DBPASS';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
  IDENTIFIED BY 'KEYSTONE_DBPASS';

Kemudian kita generate token, simpanlah token itu untuk konfigurasi selanjutnya. Usahakan taruh di notepad agar tidak lupa

$ openssl rand -hex 10

LAB 8 – Instalasi dan Konfigurasi Service Keystone

Setelah itu, tambahkan nilai “manual” pada keystone.override agar nantinya ketika kita selesai instalasi paket-paket keystone, service keystone tidak berjalan secara otomatis.

# echo "manual" > /etc/init/keystone.override

Instalasi paket software :

# apt-get install keystone apache2 libapache2-mod-wsgi

Ubah konfigurasi pada file keystone.conf, ubah seperti gambar dan simpan jika sudah selesai :

# nano /etc/keystone/keystone.conf

7

8

9

Setelah itu sinkronkan database service keystone

# su -s /bin/sh -c "keystone-manage db_sync" keystone

Inisialisasikan Fernet Keys

# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

LAB 9 – Konfigurasi Apache

Lab selanjutnya kita konfigurasikan Apache HTTP server

Edit konfigurasi pada file apache.conf dan tambahkan serverName

# nano /etc/apache/apache.conf

10

Buat file konfig web baru dengan command berikut:

# nano /etc/apache2/sites-available/wsgi-keystone.conf

Kemudian tambahkan script seperti dibawah ini kedalam file tersebut :

Listen 5000
Listen 35357

<VirtualHost *:5000>
    WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone 
    group=keystone display-name=%{GROUP}
    WSGIProcessGroup keystone-public
    WSGIScriptAlias / /usr/bin/keystone-wsgi-public
    WSGIApplicationGroup %{GLOBAL}
    WSGIPassAuthorization On
    ErrorLogFormat "%{cu}t %M"
    ErrorLog /var/log/apache2/keystone.log
    CustomLog /var/log/apache2/keystone_access.log combined

    <Directory /usr/bin>
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:35357>
    WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone 
group=keystone display-name=%{GROUP}
    WSGIProcessGroup keystone-admin
    WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
    WSGIApplicationGroup %{GLOBAL}
    WSGIPassAuthorization On
    ErrorLogFormat "%{cu}t %M"
    ErrorLog /var/log/apache2/keystone.log
    CustomLog /var/log/apache2/keystone_access.log combined

    <Directory /usr/bin>
        Require all granted
    </Directory>
</VirtualHost>

Aktifkan konfig web server tersebut dengan symlink

# ln -s /etc/apache2/sites-available/wsgi-keystone.conf /etc/apache2/sites-enabled

Setelah itu restart Apache dan hapus keystone.db

# service apache2 restart
# rm -f /var/lib/keystone/keystone.db

LAB 10 – Membuat Service Entity dan API Endpoint

Lab selanjutnya yaitu membuat service entity dan API endpoint. Langsung saja jalankan command seperti dibawah ini. Pertama set autentikasi token, ubah ADMIN_TOKEN dengan token yang sebelumnya telah dibuat dan yang sarankan untuk disimpan kedalam notepad:

$ export OS_TOKEN=ADMIN_TOKEN

Lanjutkan dengan set endpoint :

$ export OS_URL=http://controller:35357/v3

dan set pula versi dari API Identity :

$ export OS_IDENTITY_API_VERSION=3

11

Autentikasi sudah dibuat dan sekarang mari kita buat service entity dan juga API endpoint

$ openstack service create \
  --name keystone --description "IDN OpenStack Identity" identity
$ openstack endpoint create --region RegionOne \
  identity public http://controller:5000/v3
$ openstack endpoint create --region RegionOne \
  identity internal http://controller:5000/v3
$ openstack endpoint create --region RegionOne \
  identity admin http://controller:35357/v3

12

13

$ openstack domain create --description "IDN Default Domain" default

LAB 11 – Membuat User, Role, Project dan Service di Keystone

Buat project, user serta tambahkan role untuk project admin

$ openstack project create --domain default \
  --description "IDN Admin Project" admin

14

Buat user admin dan tambahkan role Admin project untuk user admin

$ openstack user create --domain default \
  --password-prompt admin
User Password:
Repeat User Password:
$ openstack role create admin
$ openstack role add --project admin --user admin admin

15

Kemudian kita buat service project

17

Tambahkan pula demo project

$ openstack project create --domain default \
  --description "Demo Project" demo

18

Buat user demo

$ openstack user create --domain default \
  --password-prompt demo

19

Setelah itu kita buat role untuk user demo

$ openstack role create demo

Tambahkan role demo kedalam project demo dan user demo

$ openstack role add --project demo --user demo user

20

Untuk menambahkan user dan project baru kalian bisa mengulangi kembali langkah-langkah seperti diatas. Nah selanjutnya agar aman kita harus menonaktifkan fitur autentikasi token sementara. Dan berikut langkah-langkahnya :

LAB 12 – Verifikasi Keystone

Edit file keystone-paste.ini dan hilangkan admin_token_auth pada baris [pipeline:public_api], [pipeline:admin_api], dan [pipeline:api_v3]

# nano /etc/keystone/keystone-paste.ini

21

Selanjutnya hapus dulu temporary token dengan perintah unset :

$ unset OS_TOKEN OS_URL

Nah, jika kalian ingin menggunakan user admin gunakan command seperti dibawah ini :

$ openstack --os-auth-url http://controller:35357/v3 \
  --os-project-domain-name default --os-user-domain-name default \
  --os-project-name admin --os-username admin token issue
Password:

22

Atau menggunakan user demo seperti ini :

$ openstack --os-auth-url http://controller:5000/v3 \
  --os-project-domain-name default --os-user-domain-name default \
  --os-project-name demo --os-username demo token issue
Password:

23

LAB 13 – Pembuatan Script Token User

Selanjutnya kita akan buat script saja agar kita tidak perlu panjang-panjang mengetik command seperti langkah diatas, tujuannya tentu saja agar lebih cepat, simple dan mudah.

Buat dan edit file baru dengan nama admin-openrc.sh :

# nano admin-openrc.sh

Tambahkan script berikut kedalam admin-openrc.sh dan ubah ADMIN_PASS dengan password user admin kalian masing-masing.

export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

Buat pula file seperti diatas dengan nama berbeda yaitu demo-openrc.sh dan edit isi filenya seperti dibawah ini. Ubahlah DEMO_PASS dengan password user demo kalian.

export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=DEMO_PASS
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

Untuk menjalankan script dan memilih user serta project tertentu gunakan script diatas dengan command berikut. Hasilnya akan keluar detail user id dan project id tokennya.

$ source admin-openrc.sh

24

LAB 14 – Konfigurasi SSL pada Keystone

Agar lebih aman lagi, kita bisa menggunakan SSL pada keystone. Caranya dengan mengaktifkan perintah itu pada konfigurasi keystone.

# nano /etc/keystone/keystone.conf

25

Jika sudah simpan dan restart service keystone

# service keystone restart

Baiklah saya rasa rangkaian lab openstack ini saya akhiri dulu sampai disini..Eiitss jangan senang dulu kawan karena konfigurasi masih panjang jadi siapkanlah makanan dan minuman pada lab selanjutnya karena jujur saya ini laper banget, pengen makan tapi sayang makanan dari pondok pesantren belum dateng ya tapi gapapa lah justru belajar dalam perut lapar dan penuh tantangan itu membuat semuanya menjadi pas dan jos untuk dilewati.. Jadi usai sudah postingan kali ini lain kali pasti akan saya sambung pada lab selanjutnya yang akan datang.

 

Salam.

Leave a comment