Blogs

Cara Menginstall OpenStack Menggunakan Kolla Ansible

Blog Single

Dalam artikel ini, Tim Btech Engineers akan memaparkan cara menginstall OpenStack untuk Anda. Khususnya, di artikel ini dijelaskan langkah-langkah instalasi OpenStack pada bare-metal server menggunakan salah satu deployment tool yang bernama Kolla-Ansible. Sebelumnya, kita perlu mengetahui lebih lanjut mengenai Kolla-Ansible.

Apa itu Kolla-Ansible?

Kolla Ansible adalah sebuah deployment tool yang menyebarkan layanan OpenStack dan komponen infrastruktur dalam wadah Docker. Misi Kolla adalah menyediakan wadah siap produksi dan alat penyebaran untuk mengoperasikan cloud OpenStack. Kolla memungkinkan operator dengan sedikit pengalaman untuk menyebarkan OpenStack dengan cepat dan seiring bertambahnya pengalaman, modifikasi konfigurasi OpenStack agar sesuai dengan kebutuhan operator.

Kolla Ansible merupakan salah satu deployment tool OpenStack yang menggunakan metode men-deploy OpenStack diatas container. Berikut adalah arsitektur dari deployment kolla.

 

 

Cara menginstall OpenStack yang akan dijelaskan pada artikel ini akan menggunakan OpenStack versi xena pada bare-metal server dengan skema Multi-Node Cluster. Multi-Node Cluster adalah cara untuk membagi beban kerja tidak hanya pada 1 compute namun terdistribusi pada compute lainnya. Skema multi-node cluster minimal menggunakan 1 compute sebagai controller dan compute lain sebagai worker.

Prasyarat

  1. Bare-metal / Virtual Machine (Minimal 1 node untuk metode All In One dan minimal 2 node untuk metode Multinode)
  2. Minimal 2 NIC per VM dengan 1 interface yang tidak diberikan ip
  3. Disk tambahan untuk backend storage (At Least 50gb)
  4. Ram minimal 8gb
  5. Koneksi ke Internet
  6. Mempunyai akses root maupun user sudoer

Lab Topology

Arsitektur Lab openstack multinode

 

Langkah-langkah instalasi

Berikut adalah tahapan dalam melakukan instalasi OpenStack mulai dari persiapan awal hingga verifikasi keberhasilan instalasi.

Mengubah Hostname tiap Node

1. Ubah hostname pada masing-masing node, sesuai fungsinya

## Masuk ke controller nodehostname controllerecho 'controller' > /etc/hostnamehostnamectlexit## Masuk ke compute1 nodehostname compute1echo 'compute1' > /etc/hostnamehostnamectlexit## Masuk ke compute2 nodehostname compute2echo 'compute2' > /etc/hostnamehostnamectlexit

2. Mapping host pada /etc/hosts pada masing-masing node. Jalankan perintah di semua node

nano /etc/hosts...10.10.10.10 controller 
10.10.10.20 compute1 
10.10.10.30 compute2...

3. Verifikasi koneksi antar node menggunakan ping. Jalankan perintah di semua node

ping -c 4 controllerping -c 4 compute1ping -c 4 compute2

Setup SSH Keypair

Membuat SSH Keypair agar tiap node controller dapat berkomunikasi dengan node compute

1. Buat ssh-keygen pada node controller

ssh-keygen -t rsa

2. Salin SSH Key controller ke semua node

ssh-copy-id -i ~/.ssh/id_rsa.pub {username}@controllerssh-copy-id -i ~/.ssh/id_rsa.pub {username}@compute1ssh-copy-id -i ~/.ssh/id_rsa.pub {username}@compute2

Setup VGS pada semua node

Membuat vgs pada semua node dikarenakan kita akan menggunakan cinder sebagai service tambahan

sudo pvcreate /dev/vdb
sudo vgcreate cinder-volumes /dev/vdb
sudo vgs

Instalasi Kolla Ansible pada Node Controller

Jalankan semua perintah berikut hanya pada Node Controller

1. Update Repository

sudo apt update -y

2. Install dependencies

sudo apt-get install python3-dev \
libffi-dev gcc libssl-dev python3-selinux \
python3-setuptools python3-venv -y

3. Buat virtual envrionment dan aktifkan

python3 -m venv kolla-venvsource kolla-venv/bin/activate

4. Install ansible dan kolla-ansible

pip install -U pippip install ansible==2.10pip install kolla-ansible==13.0

5. Buat direktori /etc/kolla

sudo mkdir -p /etc/kollasudo chown $USER:$USER /etc/kolla

6. Salin berkas globals.yml dan passwords.yml ke direktori /etc/kolla

cp -r kolla-venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla

7. Salin berkas all-in-one dan multinode ke direktori yang dipilih

 

Langkah selanjutnya adalah menyiapkan berkas inventory. Inventory adalah berkas Ansible yang digunakan untuk menentukan host dan grup sesuai fungsinya. Berkas ini dapat digunakan untuk menentukan fungsi node dan akses kredensial.

Kolla-Ansible menyediakan file inventory all-in-one dan multinode. All In One digunakan untuk instalasi OpenStack node tunggal pada localhost. Multinode digunakan untuk instalasi openstack dengan host terpisah atau lebih dari satu node.

cp kolla-venv/share/kolla-ansible/ansible/inventory/* .

8. Ubah konfigurasi inventory multinode

nano ~/multinode ... 
[control] 
controller 
 
[network] 
controller 
 
[compute] 
compute1 
compute2 
 
[monitoring] 
controller 
 
[storage] 
controller 
compute1 
compute2 
 
[deployment] 
localhost ansible_connection=local

9. Konfigurasi ansible

Konfigurasi Ansible harus disesuaikan dengan environment pada OS. Misalnya, menambahkan opsi berikut pada berkas konfigurasi Ansible /etc/ansible/ansible.cfg

sudo mkdir -p /etc/ansiblesudo nano /etc/ansible/ansible.cfg ... 
[defaults] 
host_key_checking=False 
pipelining=True 
forks=100 
...

10. Verifikasi koneksi ansible menggunakan module ping

ansible -i multinode all -m ping

11. Generate password kolla

Password yang digunakan dalam deployment disimpan di berkas /etc/kolla/passwords.yml. Semua password kosong dalam berkas ini harus diisi baik secara manual atau dengan menjalankan generator password acak.

cat /etc/kolla/passwords.ymlkolla-genpwdcat /etc/kolla/passwords.yml

12. Konfigurasi cluster openstack pada kolla globals.yml

Berkas globals.yml adalah berkas konfigurasi utama untuk Kolla-Ansible. Ada beberapa opsi yang diperlukan untuk deployment Kolla-Ansible.

nano /etc/kolla/globals.yml

Hapus komentar setiap baris di bawah ini pada berkas globals.yml

a) Opsi Image Kolla menyediakan pilihan beberapa distribusi Linux dalam container ( CentOS, RHEL, Debian, Ubuntu)

kolla_base_distro: "ubuntu"

b) Jenis Instalasi perlu dikonfigurasi. Pilihanya ada 2 ( binary : menggunakan repositori seperti apt atau dnf, source : menggunakan raw sources archive, repositori git atau lokal source direktori). Ini hanya memengaruhi layanan OpenStack. Layanan infrastruktur selalu “binary”. Pilihan source terbukti sedikit lebih handal dibandingkan dengan binary.

kolla_install_type: "source"

c) Rilis Openstack, Pada panduan ini, Kolla Ansible yang dipasang adalah versi 13.0, secara default yaitu menggunakan versi rilis Openstack Xena.

OpenStack Xena Release

openstack_release: "xena"

d) Networking, Kolla-Ansible memerlukan beberapa opsi jaringan untuk diatur. Sehingga perlu mengatur interface jaringan yang digunakan oleh OpenStack.

  • Interface pertama yang diatur adalah network_interface. Ini adalah interface default sebagai multiple managent-type network.
network_interface: "ens3"
  • Interface kedua yang dibutuhkan adalah neutron external atau public networks. Interface ini dapat berupa vlan atau flat, tergantung dari proses pembuatan interface. Interface ini harus aktif dengan tanpa IP Address. Jika tidak, instance pada Openstack tidak dapat mengakases ke external network.
neutron_external_interface: "ens4"
  • Selanjutnya, dibutuhkan sebuah Virtual IP (VIP) untuk managemen traffic. IP ini akan di-manage oleh keepalived untuk menyediakan high-availability, dan harus di atur agar IP tersebut tidak digunakan oleh host atau device lain untuk koneksi ke network_interface. 
kolla_internal_vip_address: "10.10.10.100"

e) Mengaktifkan service tambahan, Secara default Kolla-Ansible menyediakan bare compute kit, yang memberikan dukungan untuk banyak pilihan layanan tambahan. Untuk mengaktifkannya, set enable_<service_name>: to “yes”. Berikut contoh untuk mengaktifkan serivice cinder sebagai service tambahan.

enable_cinder: "yes" 
enable_cinder_backend_lvm: "yes"

Kolla sekarang mendukung banyak layanan Openstack, terdapat daftar layanan yang tersedia (https://github.com/openstack/kolla-ansible/blob/master/README.rst#openstack-services). Untuk informasi lebih lanjut tentang konfigurasi layanan, silakan merujuk ke Panduan Referensi Layanan (https://docs.openstack.org/kolla-ansible/latest/reference/index.html).

f) Verifikasi konfigurasi berkas globals.yml

cat /etc/kolla/globals.yml | grep -v "#" |  tr -s [:space:]

Deployment

Setelah pengaturan konfigurasi, langkah selanjutnya yaitu deployment. Pertama, perlu mengatur dependensi host-level, seperti docker.

Kolla-Ansible menyediakan playbook yang akan menginstal semua service yang diperlukan sesuai dengan versi yang dipiih.

Berikut ini langkah-langkah deployment apabila menggunakan inventory multinode. Jika menggunakan inventory yang berbeda, seperti all-in-one, ganti nilai argumen -i pada command yang dijalankan.

Bootstrap server dengan dependensi kolla

kolla-ansible -i ./multinode bootstrap-servers

Pengecekan hosts sebelum menjalankan deployment

kolla-ansible -i ./multinode prechecks

Selanjutnya, jalankan openstack deployment. Proses ini membutuhkan waktu sekitar 10 menit atau lebih.

kolla-ansible -i ./multinode deploy

Jalankan post-deploy untuk menghasilkan berkas admin-openrc.sh

kolla-ansible -i ./multinode post-deploy

Verifikasi Instalasi

1. Install openstack-client menggunakan pip dan Verifikasi cluster openstack

pip install openstackclientsource /etc/kolla/admin-openrc.sh

2. Verifikasi openstack cluster

$ openstack service list  
+----------------------------------+-------------+----------------+ 
| ID                               | Name        | Type           | 
+----------------------------------+-------------+----------------+ 
| 10cb2de52c404662aa6ca3ccdb8f2cf7 | cinderv2    | volumev2       | 
| 250a6a7cf4d44f0c9cdd2a39f8203ccc | cinderv3    | volumev3       | 
| 2d99d37fc498465591faa9f44580d991 | placement   | placement      | 
| 4001de18bf5c45f5a1467a31ea5a2afd | heat-cfn    | cloudformation | 
| 505333b0b90b4962a37d55c44bc940f9 | keystone    | identity       | 
| 612c645a37e848d49af9f6f53dc6e8ac | nova_legacy | compute_legacy | 
| 87c2edd540c84c8296251ea284a14398 | neutron     | network        | 
| 94e54356818d43af8ed7f4e1a6da28f1 | nova        | compute        | 
| a9f6eb791ec740c183ecff67dc7c7b08 | glance      | image          | 
| eaf1f96955244acfbf5124e42c32f4e6 | heat        | orchestration  | 
+----------------------------------+-------------+----------------+

3. Dashboard access

Untuk mengakses IP bisa menggunakan Virtual IP atau Controller IP

Kesimpulan

Installasi OpenStack dapat menggunakan 2 topologi yaitu menggunakan topologi multi-nodes maupun all-in-one. Pada artikel ini kami membahas mengenai cara instalasi OpenStack dengan topologi multi-nodes, sehingga memerlukan beberapa compute.

Untuk artikel berikut nya kami akan membahas mengenai instalasi OpenStack menggunakan topologi All-in-one. Stay tune…

Apabila Anda Ada kebutuhan mengenai instalasi OpenStack atau kebutuhan lainnya, ada dapat menghubungi kami di sales@btech.id atau +62-811-1123-242 serta kunjungi laman kami di www.btech.id

 

Baca Juga: APA ITU DOCKER? KETAHUI LEBIH LANJUT DI ARTIKEL INI!

Kunjungi: Medium Btech Engineers