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:

RilisTahunFokus Utama
Epoxy2025.1Migrasi VMware, optimasi beban kerja AI, peningkatan storgae(cinder)
Dalmatian2024.2Peningkatan performa, keamanan, dan stabilitas.
Caracal2024.1Integrasi container yang lebih baik.
Bobcat2023.2Skalabilitas jaringan dan manajemen resource.
Antelope2023.1Peningkatan manajemen storage dan jaringan.
Zed2022.2Pengelolaan API dan keamanan yang lebih kuat.
Yoga2022.1Efisiensi resource dan optimisasi keamanan.
Xena2021.2Peningkatan performa komputasi dan penyimpanan.
Wallaby2021.1Optimalisasi jaringan dan keamanan.
Victoria2020.2Dukungan 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:

CriteriaMinimalRecommended
CPU4 core @ 2.4 GHz24 core @ 2.67 GHz
RAM8 GB24 GB or more
HDD2 x 50 GB4 x 500 GB (7200 rpm)
RAIDSoftware 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

  1. 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
  1. 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
  1. 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
  1. 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
  1. 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
  1. 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
  1. 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
  1. 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
  1. 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
  1. 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
  1. 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.

0
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

Rafli Abdul Bay Haqqy
Rafli Abdul Bay Haqqy