Instalasi Openstack Ussuri Multinode Menggunakan Kolla-Ansible
Pada kesempatan ini saya akan membagikan tutorial deploy openstack ussuri menggunakan salah satu deployment tools yaitu kolla-ansible. Kolla merupakan deployment tool yang menyediakan production-ready containers OpenStack Cloud. Pada tutorial ini saya menggunakan os ubuntu 18.04.
TOPOLOGI
Berikut beberapa service yang akan saya install:
- Core service (keystone, nova, neutron, glance)
- Cinder backend (LVM)
- Horizon (dashboard)
PREPERATION
Eksekusi pada semua node
Tambahkan user
# adduser donny
Masukan user ke grup sudo dan berikan akses user sudo no password
# usermod -aG sudo donny
# echo "donny ALL=(root) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/donny
# sudo chmod 0440 /etc/sudoers.d/donny
# su donny
Membuat volume grup cinder untuk service cinder
$ sudo pvcreate /dev/vdb
$ sudo vgcreate cinder-volumes /dev/vdb
$ sudo vgs
Menambahkan host
$ sudo nano /etc/hosts
10.20.80.10 do-controller
10.20.80.11 do-compute1
10.20.80.12 do-compute2
Membuat ssh-key
$ ssh-keygen -t rsa
Copy ssh pub key ke semua node
$ ssh-copy-id -i ~/.ssh/id_rsa.pub donny@10.20.80.10
$ ssh-copy-id -i ~/.ssh/id_rsa.pub donny@10.20.80.11
$ ssh-copy-id -i ~/.ssh/id_rsa.pub donny@10.20.80.12
INSTALL DEPENDECIES
Eksekusi hanya pada node controller
Update packet ubuntu
$ sudo apt update -y
Install dependencies yang dibutuhkan
$ sudo apt install -y python3-dev libffi-dev gcc libssl-dev
Install package python3
$ sudo apt install -y python3-pip python-docker python3-venv
Veriifikasi paket yang terinstall pada python3
$ pip3 list --format=columns
Membuat virtual environtment python
$ python3 -m venv kolla-os-venv
$ source kolla-os-venv/bin/activate
Install paket ansible dan kolla ansible menggunakan pip3
$ pip install -U pip
$ pip install ansible==2.9.17
$ pip install kolla-ansible==10.2.0
Membuat direktori untuk kolla ansible
$ sudo mkdir -p /etc/kolla
$ sudo chown $USER:$USER /etc/kolla
Copy file globals.yml dan password.yml ke direktori kolla
$ cp -r kolla-os-venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
Copy inventory all-in-one dan multinode ke direktori home
$ cp kolla-os-venv/share/kolla-ansible/ansible/inventory/* .
CONFIGURATION
Eksekusi hanya pada node controller
Edit file inventory multinode
$ nano ~/multinode
[control]
do-controller[network]
do-controller[compute]
do-compute1
do-compute2[monitoring]
do-controller[storage]
do-controller
do-compute1
do-compute2[deployment]
localhost ansible_connection=local
Note: jangan rubah inventory lainya
Konfigurasi file ansible.cfg
$ sudo mkdir -p /etc/ansible
$ sudo nano /etc/ansible/ansible.cfg
[defaults]
host_key_checking=False
pipelining=True
forks=100
Cek koneksi antar node menggunakan module ping ansible
$ ansible -i multinode all -m ping
Generate password openstack otomatis menggunakan kolla-genpwd
$ kolla-genpwd
$ cat /etc/kolla/passwords.yml
Konfigurasi file globals.yml
$ nano /etc/kolla/globals.yml
kolla_base_distro: "ubuntu"
kolla_install_type: "source"
openstack_release: "ussuri"
kolla_internal_vip_address: "10.20.80.100"
network_interface: "ens3"
neutron_external_interface: "ens4"
neutron_plugin_agent: "ovn"
enable_openstack_core: "yes"
enable_haproxy: "yes"
enable_neutron_provider_networks: "yes"
nova_compute_virt_type: "kvm"
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes"
DEPLOY
Eksekusi hanya pada node controller
Jalankan bootstrap node kolla-ansible
$ kolla-ansible -i ./multinode bootstrap-servers
Note: Jika ImportError: No module named pkg_resources
$ sudo apt-get install --reinstall python-pkg-resources -y
Jalankan prechecks node kolla-ansible
$ kolla-ansible -i ./multinode prechecks
Note: Jika ImportError:No module named docker
$ sudo apt-get install python-docker -y
Deploy openstack cluster kolla-ansible
$ kolla-ansible -i ./multinode deploy
Jalankan post-deploy untuk mendapatkan file admin-openrc
$ kolla-ansible post-deploy
Install Openstack CLI python
$ sudo apt install -y python3-openstackclient
Reff: https://docs.openstack.org/project-deploy-guide/kolla-ansible/ussuri/quickstart.html