Cara Menginstall OpenStack Menggunakan Kolla Ansible
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
- Bare-metal / Virtual Machine (Minimal 1 node untuk metode All In One dan minimal 2 node untuk metode Multinode)
- Minimal 2 NIC per VM dengan 1 interface yang tidak diberikan ip
- Disk tambahan untuk backend storage (At Least 50gb)
- Ram minimal 8gb
- Koneksi ke Internet
- 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_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