How to Install OpenStack 2024.2 All-In-One With Kolla-Ansible


OpenStack: Platform Cloud Computing Terbuka
Apa itu OpenStack?
OpenStack adalah platform cloud computing open-source yang memungkinkan penyediaan dan pengelolaan infrastruktur cloud (IaaS - Infrastructure as a Service) secara fleksibel dan terukur. Dikembangkan pertama kali oleh NASA dan Rackspace pada tahun 2010, OpenStack kini menjadi salah satu platform cloud open-source paling populer yang dikelola oleh OpenInfra Foundation.
OpenStack dirancang untuk mengelola berbagai sumber daya cloud, termasuk komputasi, jaringan, dan penyimpanan, melalui antarmuka API yang konsisten dan dapat diakses melalui Command Line Interface (CLI) maupun antarmuka web (Horizon). Dengan arsitektur modular, OpenStack memungkinkan pengguna untuk memilih dan mengonfigurasi layanan cloud sesuai kebutuhan mereka.
Sejarah dan Perkembangan OpenStack
OpenStack terus berkembang melalui rilis berkala setiap enam bulan, dan setiap rilis diberi nama kode berdasarkan urutan alfabet. Berikut adalah sejarah singkat perkembangan OpenStack dari awal hingga rilis terbaru:
2010: Rilis Pertama - Austin
Rilis pertama dari OpenStack yang hanya memiliki dua layanan utama: Compute (Nova) dan Object Storage (Swift).2011-2014: Perkembangan Pesat
Komponen baru mulai ditambahkan seperti Glance (Image), Keystone (Identity), dan Horizon (Dashboard).2015: Peningkatan Stabilitas dan Skalabilitas
OpenStack semakin diadopsi oleh perusahaan besar dengan peningkatan stabilitas pada layanan jaringan (Neutron) dan penyimpanan (Cinder).2017-2019: Dukungan Multi-Cloud dan Orkestrasi
Rilis Pike, Queens, dan Rocky menghadirkan fitur orkestrasi (Heat), manajemen container (Magnum), dan keamanan yang lebih baik.2020-2022: Dukungan Hybrid Cloud
Rilis Victoria, Wallaby, Xena, dan Yoga menambahkan peningkatan keamanan, kinerja, dan dukungan untuk integrasi hybrid cloud.2023-2024: Fokus pada Skalabilitas dan Keamanan
Rilis Bobcat, Caracal, dan Dalmatian menawarkan peningkatan performa, pengelolaan container yang lebih baik, dan fitur keamanan yang lebih kuat.
Versi-Versi OpenStack
Berikut adalah daftar rilis OpenStack terbaru dan beberapa rilis terkenal sebelumnya:
Rilis | Tahun | Fokus Utama |
Epoxy | 2025.1 | Migrasi VMware, optimasi beban kerja AI, peningkatan storgae(cinder) |
Dalmatian | 2024.2 | Peningkatan performa, keamanan, dan stabilitas. |
Caracal | 2024.1 | Integrasi container yang lebih baik. |
Bobcat | 2023.2 | Skalabilitas jaringan dan manajemen resource. |
Antelope | 2023.1 | Peningkatan manajemen storage dan jaringan. |
Zed | 2022.2 | Pengelolaan API dan keamanan yang lebih kuat. |
Yoga | 2022.1 | Efisiensi resource dan optimisasi keamanan. |
Xena | 2021.2 | Peningkatan performa komputasi dan penyimpanan. |
Wallaby | 2021.1 | Optimalisasi jaringan dan keamanan. |
Victoria | 2020.2 | Dukungan multi-cloud dan penyimpanan. |
Arsitektur OpenStack
OpenStack memiliki arsitektur modular yang terdiri dari beberapa komponen utama, masing-masing bertanggung jawab untuk menyediakan layanan tertentu dalam cloud. Berikut adalah penjelasan lengkap tentang setiap komponen:
1. Compute Service (Nova)
Fungsi: Menyediakan dan mengelola instance komputasi (VM).
Teknologi: Mendukung berbagai hypervisor seperti KVM, QEMU, VMware, Xen.
Fitur Utama:
Manajemen instance (start, stop, reboot).
Live migration antar host.
Dukungan multi-hypervisor.
Auto-scaling dengan Heat.
2. Networking Service (Neutron)
Fungsi: Mengelola jaringan virtual dan konektivitas untuk instance.
Teknologi: Mendukung berbagai backend jaringan (Open vSwitch, Linux Bridge).
Fitur Utama:
Dukungan VLAN, VXLAN, dan flat network.
IP Floating (IP publik untuk instance).
Load Balancer (Octavia).
Firewall (Security Group).
3. Block Storage (Cinder)
Fungsi: Menyediakan penyimpanan block untuk instance (seperti hard disk virtual).
Backend: LVM, Ceph, NFS, NetApp, Dell EMC.
Fitur Utama:
Snapshot dan clone volume.
Manajemen kuota.
Dukungan multi-backend.
4. Object Storage (Swift)
Fungsi: Menyediakan penyimpanan object yang scalable.
Arsitektur: Multi-tenant dan multi-region.
Fitur Utama:
Replikasi data.
Dukungan versi file.
Penyimpanan objek statik (gambar, video, file).
5. Image Service (Glance)
Fungsi: Mengelola dan mendistribusikan image (template) untuk instance.
Format Dukungan: RAW, QCOW2, VHD, VMDK, ISO.
Fitur Utama:
Upload dan manajemen image.
Manajemen kuota image.
Penyimpanan image multi-backend.
6. Identity Service (Keystone)
Fungsi: Manajemen autentikasi dan otorisasi pengguna.
Fitur Utama:
Dukungan multi-domain.
Multi-tenant.
Role-Based Access Control (RBAC).
Dukungan integrasi dengan LDAP, SAML, OAuth.
7. Dashboard (Horizon)
Fungsi: Antarmuka web grafis untuk manajemen cloud.
Teknologi: Django (Python).
Fitur Utama:
Manajemen instance, jaringan, dan penyimpanan.
Manajemen user dan role.
Monitoring resource cloud.
8. Orchestration Service (Heat)
Fungsi: Mengelola orkestrasi aplikasi berbasis template (HOT - Heat Orchestration Template).
Fitur Utama:
Auto-scaling aplikasi.
Dependency management.
Manajemen stack.
9. Telemetry Service (Ceilometer)
Fungsi: Monitoring dan pengumpulan data metrik resource.
Fitur Utama:
Pengukuran penggunaan resource.
Integrasi dengan dashboard (Horizon).
Manajemen metrik multi-tenant.
10. Bare Metal Provisioning (Ironic)
Fungsi: Menyediakan layanan provisioning untuk server fisik (bare metal).
Fitur Utama:
Dukungan multi-tenant.
Provisioning otomatis server fisik.
Manajemen hardware secara remote.
Integrasi Komponen OpenStack
Setiap komponen OpenStack saling terintegrasi untuk membentuk platform cloud yang lengkap:
Nova (Compute) menggunakan Neutron (Networking) untuk mengelola jaringan instance dan Cinder (Block Storage) untuk penyimpanan instance.
Keystone (Identity) berfungsi sebagai pusat autentikasi untuk semua layanan.
Horizon (Dashboard) memberikan akses GUI untuk pengguna.
Heat (Orchestration) memungkinkan pengelolaan aplikasi multi-resource dengan template.
Swift (Object Storage) menyediakan penyimpanan objek yang scalable.
Kolla Ansible: Solusi Deployment Otomatis untuk OpenStack
Apa itu Kolla Ansible?
Kolla Ansible adalah sebuah proyek dari OpenStack yang menyediakan metode deployment OpenStack berbasis container menggunakan Ansible sebagai alat otomasi. Kolla Ansible memanfaatkan Docker sebagai container runtime dan Ansible sebagai platform otomasi, sehingga memudahkan proses instalasi, konfigurasi, dan pengelolaan OpenStack.
Kolla Ansible didesain untuk menyediakan solusi deployment OpenStack yang mudah, cepat, stabil, dan fleksibel, baik untuk lingkungan development, testing, hingga production.
Mengapa Memilih Kolla Ansible untuk Deployment OpenStack?
Kolla Ansible memiliki beberapa keunggulan yang menjadikannya pilihan populer untuk deployment OpenStack, antara lain:
Otomatisasi Lengkap: Proses deployment, upgrade, dan maintenance OpenStack dilakukan secara otomatis menggunakan Ansible.
Berbasis Container: Setiap layanan OpenStack dijalankan dalam container Docker, memastikan isolasi layanan dan memudahkan upgrade.
Mudah Dikustomisasi: File konfigurasi dapat diubah sesuai kebutuhan tanpa mengganggu stabilitas sistem.
Dukungan Multi-Node: Dapat digunakan untuk deployment skala kecil (All-in-One) maupun skala besar (Multi-Node).
Skalabilitas: Menambahkan node baru dalam cluster dapat dilakukan dengan mudah.
Stabil dan Teruji: Merupakan bagian dari proyek resmi OpenStack dan terus dikembangkan oleh komunitas global.
Deployment Mode dalam Kolla Ansible
Kolla Ansible mendukung dua mode deployment utama:
1. All-in-One (AIO) Deployment
Semua layanan OpenStack dijalankan pada satu node (server).
Cocok untuk keperluan testing, pengembangan, atau environment kecil.
Kelebihan: Mudah diatur dan cepat di-deploy.
Kekurangan: Tidak cocok untuk lingkungan production.
2. Multi-Node Deployment
Layanan OpenStack dijalankan secara terdistribusi pada beberapa node.
Node dapat memiliki peran berbeda:
Node Controller: Menjalankan layanan kontrol (Keystone, Horizon, Glance).
Node Compute: Menjalankan instance VM (Nova).
Node Storage: Menyediakan penyimpanan (Cinder, Swift).
Node Network: Menjalankan layanan jaringan (Neutron).
Node Bastion: Node khusus untuk menjalankan Kolla Ansible.
Kelebihan: Skalabilitas dan ketersediaan tinggi.
Kekurangan: Konfigurasi lebih kompleks.
Use Case Kolla Ansible
Cloud Pribadi (Private Cloud): Perusahaan dapat membangun cloud internal yang aman dengan OpenStack menggunakan Kolla Ansible.
Cloud Publik (Public Cloud): Penyedia layanan cloud dapat menggunakan Kolla Ansible untuk menyediakan cloud publik yang skalabel.
Environment Pengembangan dan Pengujian: Kolla Ansible All-in-One (AIO) memungkinkan deployment cepat untuk pengembangan dan testing aplikasi.
Deploy Openstack 2024.2 With Kolla Ansible
Minimum Hardware
Requirements minimum hardware untuk openstack:
Criteria | Minimal | Recommended |
CPU | 4 core @ 2.4 GHz | 24 core @ 2.67 GHz |
RAM | 8 GB | 24 GB or more |
HDD | 2 x 50 GB | 4 x 500 GB (7200 rpm) |
RAID | Software RAID-1 (use mdadm as it improves the read performance almost twice) | Hardware RAID-10 |
Topology
Ini adalah topology yang akan kita gunakan kali ini, untuk NIC ada 2, 1 digunakan untuk VM dan 1 digunakan untuk VIP(Virtual IP) jadi untuk NIC ke 2 tidak perlu disetting.
Deployment AIO
- Update dan Instalasi Dependencies
pertama update dan upgrade server kita agar dalam kondisi up-to-date, kadang kalo server tidak dalam kondisi up-to-date ketika ingin menginstall sesuatu akan error, selanjutnya install dependecies untuk digunakan virtual environment
sudo apt update -y && sudo apt upgrade -y
sudo apt install -y git python3-dev libffi-dev gcc libssl-dev libdbus-glib-1-dev libdbus-1-dev pkg-config python3.12-venv
- Membuat Virtual Environment
jika package sudah diinstall, selanjutnya masuk ke mode virtual environment, ini digunakan agar kita tidak menggangu sistem server kita saat konfigurasi
python3 -m venv /root/kolla-venv
source /root/kolla-venv/bin/activate
- Instalasi Kolla-Ansible
nah untuk install openstacknya kita gunakan versi yang akan digunakan, karena saat ini kita akan mencoba deploy versi 2024.2(dalmantian), maka gunakan veri 2024.2 jika ingin menggunakan versi lain tinggal ganti saja pada bagian versinya
pip install -U pip
pip install git+https://opendev.org/openstack/kolla-ansible@stable/2024.2
- Konfigurasi Directory Kolla
buat direktori untuk digunakan konfigurasi kolla ansiblenya, jadi kita salin konfigurasi yang dibutuhkan dari folder bawaan ke dalam folder /etc/kolla agar lebih mudah untuk mengkonfigurasinya
sudo mkdir -p /etc/kolla
sudo chown $USER:$USER /etc/kolla
cp -r /root/kolla-venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
cp /root/kolla-venv/share/kolla-ansible/ansible/inventory/all-in-one /etc/kolla
- Install Dependecies Kolla
kita install semua package yang dibutuhkan untuk mendeploy openstack, dan kita upgrade untuk dockernya agar ke versi yang lebih baru
kolla-ansible install-deps
pip install --upgrade docker requests urllib3
- Konfigurasi TLS dan Host
selanjutnya kita edit untuk main configurationnya, ini sangat penting untuk dilakukan karena ketika deploy openstack akan melihat konfigurasi yang kita buat disini, untuk settingannya opsional namun yang akan kita setting sekarang adalah bagian network,interface,backend dan tlsnya. Jika ingin menggunakan http saja pada bagian tls hiraukan saja.
cat << EOF >> /etc/kolla/globals.yml
kolla_base_distro: "ubuntu"
kolla_internal_vip_address: "172.23.12.100"
kolla_internal_fqdn: "internal.rafli.lab"
kolla_external_vip_address: "172.23.12.200"
kolla_external_fqdn: "public.rafli.lab"
network_interface: ens192
neutron_external_interface: ens224
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes"
kolla_enable_tls_internal: "yes"
kolla_enable_tls_external: "yes"
kolla_copy_ca_into_containers: "yes"
kolla_enable_tls_backend: "yes"
openstack_cacert: "/etc/ssl/certs/ca-certificates.crt"
kolla_admin_openrc_cacert: "/etc/ssl/certs/ca-certificates.crt"
EOF
cat << EOF >> /etc/hosts
172.23.12.100 internal.rafli.lab
172.23.12.200 public.rafli.lab EOF
- Generate Certificate
karena kita menggunakan TLS jadi kita perlu membuat certificatenya, lalu kita simpan kedalam /etc/ssl/certs, jika tidak menggunakan TLS maka step ini tidak perlu
kolla-ansible certificates -i /etc/kolla/all-in-one
cat /etc/kolla/certificates/ca/root.crt >> /etc/ssl/certs/ca-certificates.crt
- Setup Storage LVM untuk Cinder
pada konfigurasi globlas.yml kita menggunakan lvm untuk backend storagenya, jadi kita perlu membuat disk yang akan dijadikan sebagai backend storage openstacknya, pada bagian backend ini ada banyak pilihan yang bisa digunakan jadi bisa pilih sesuai kebutuhan dan konfigurasinya tentu akan beda juga.
pvcreate /dev/sdb
vgcreate cinder-volumes /dev/sdb
vgs
- Bootstrapping dan Prechecks
jika semua konfigurasi sudah selesai semua maka selanjutnya masuk ke mode tahap pre-deploy, sebelumnya kita buat password untuk openstack, dan lakukan bootstrap untuk mempersiapkan node yang akan menjalankan openstack dan prechecks untuk mengecek semua konfigurasi sebelumnya untuk mengantisipasi error saat deployment
kolla-genpwd
kolla-ansible bootstrap-servers -i /etc/kolla/all-in-one
kolla-ansible prechecks -i /etc/kolla/all-in-one
- Deploy OpenStack
ketika proses bootstrap dan prechecks sudah selesai, selanjutnya bisa langsung deploy openstacknya, ini akan memakan waktu sekitar kurang lebih 15menit, ketika sudah selesai deploy makan lakukan post-deploy untuk konfigurasi tambahan dan membuat credentials admin
kolla-ansible deploy -i /etc/kolla/all-in-one
kolla-ansible post-deploy -i /etc/kolla/all-in-one
pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/master
- Verifikasi OpenStack
jika sudah selesai proses deployment maka bisa verifikasi openstacknya apakah sudah running semua, bisa cek pada bagian containernya, endpoint dari openstacknya, ataupun dari horizonnya untuk mengecke apakah ada error atau tidak
docker ps
source /etc/kolla/admin-openrc.sh
openstack endpoint list
untuk usernya admin dan untuk passwordnya bisa dicek /etc/kolla/admin-openrc.sh
Kesimpulan
OpenStack adalah platform cloud computing open-source yang memungkinkan penyediaan dan pengelolaan infrastruktur cloud dengan fleksibilitas dan skalabilitas tinggi. Dalam artikel ini, kita telah membahas apa itu OpenStack, sejarah perkembangannya, versi-versi rilis, arsitektur modular, serta komponen utamanya seperti Nova, Neutron, Cinder, dan lainnya.
Selain itu, Kolla Ansible menjadi solusi deployment otomatis yang efektif untuk OpenStack, menggunakan container Docker dan otomasi Ansible. Dengan pendekatan All-in-One (AIO) deployment, proses instalasi dan konfigurasi OpenStack menjadi lebih mudah dan cepat.
Dengan memahami konsep, arsitektur, dan cara deployment OpenStack menggunakan Kolla Ansible, kamu bisa membangun cloud pribadi atau environment pengujian dengan lebih efisien dan scalable. OpenStack memberi kebebasan untuk menyesuaikan infrastruktur cloud sesuai kebutuhan, dari skala kecil hingga enterprise.
Subscribe to my newsletter
Read articles from Rafli Abdul Bay Haqqy directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
