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
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.
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.
Kemudian, atur jaringannya sesuai gambar berikut.
Jika sudah silahkan jalankan VM, setelah itu rubah hosts, hostname serta IP address interface.
# nano /etc/hosts
# nano /etc/hostname
# nano /etc/network/interfaces
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.conf
Kemudian restart chrony, dan lakukan verifikasi setelah itu
# service chrony restart
# chronyc sources
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
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
Simpan jika sudah, kemudian ubah file my.cnf
# nano my.cnf
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
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
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
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
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
$ 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
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
Kemudian kita buat service project
Tambahkan pula demo project
$ openstack project create --domain default \ --description "Demo Project" demo
Buat user demo
$ openstack user create --domain default \ --password-prompt demo
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
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
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:
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:
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
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
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.