- 1 controller node (controller01)
- 2 compute nodes (compute01 to compute02)
- Optional: 1 storage node
- All nodes should have:
- Rocky 9, CentOS Stream 9, Ubuntu 22.04, or Debian 12
- At least 2 CPUs and 4 GB RAM (preferably more for controller)
- Internet access or a local mirror
- Enable the virtualization in both compute nodes
- For the second NIC ( ens192 ) : Disable the IPv4 & IPv6
- Note : The primary user in all amchines must be the
kollauser that was created.
# Ensure the latest version of pip is installed
pip install -U pip
# update the system
sudo dnf update
# install dependencies
sudo dnf install git python3-devel libffi-devel gcc openssl-devel python3-libselinux
- Note : This step is required only if a different user was created during the VM configuration at the beggining. If the kolla user was created initially ( upon VM configuration before OS installation ), you can skip this step.
su -
adduser kolla
usermod -aG wheel kolla
passwd kolla ( Then Enter the kolla user password )
echo “kolla ALL=(ALL) NOPASSWD:ALL” | tee /etc/sudoers.d/kolla
ssh-keygen
ssh-copy-id -i /home/controller/.ssh/id_rsa.pub kolla@compute1 → Then enter yes
ssh-copy-id -i /home/controller/.ssh/id_rsa.pub kolla@compute2 → Then enter yes
- Note : Ensure that the sshd service is active in all machines ( systemctl status sshd ) and try to ssh from controller to compute nodes
ssh kolla@compute01
ssh kolla@compute02
pip3 installl kolla-ansible
sudo mkdir -p /etc/kolla
sudo chown $USER:$USER /etc/kolla
cp -r /home/kolla/.local/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
ansible --version
cp /home/kolla/.local/share/kolla-ansible/ansible/inventory/multinode .
kolla-ansible --version
kolla-ansible install-deps
- Edit These Parts :
[control]
controller
[network]
controller
[compute]
compute01
compute02
[monitoring]
controller
[storage]
controller
kolla-genpwd
- Add this part at the beggining of the file :
workaround_ansible_issue_8743: yes
config_strategy: "COPY_ALWAYS"
kolla_base_distro: "rocky"
openstack_release: "2024.2"
network_interface: "ens160"
neutron_external_interface: "ens192"
kolla_internal_vip_address: "192.168.142.160"
kolla_container_engine: docker
docker_configure_for_zun: "yes"
containerd_configure_for_zun: "yes"
docker_apt_package_pin: "5:20.*"
network_address_family: "ipv4"
neutron_plugin_agent: "openvswitch"
enable_openstack_core: "yes"
enable_glance: "{{ enable_openstack_core | bool }}"
enable_haproxy: "yes"
enable_keepalived: "{{ enable_haproxy | bool }}"
enable_keystone: "{{ enable_openstack_core | bool }}"
enable_mariadb: "yes"
enable_memcached: "yes"
enable_neutron: "{{ enable_openstack_core | bool }}"
enable_nova: "{{ enable_openstack_core | bool }}"
enable_aodh: "yes"
enable_etcd: "yes"
enable_gnocchi: "yes"
enable_gnocchi_statsd: "yes"
enable_heat: "{{ enable_openstack_core | bool }}"
enable_horizon: "{{ enable_openstack_core | bool }}"
enable_kuryr: "yes"
enable_zun: "yes"
kolla-ansible bootstrap-servers -i ./multinode
kolla-ansible prechecks -i ./multinode
kolla-ansible deploy -i ./multinode
kolla-ansible validate-config -i ./multinode
pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/master
source /etc/kolla/admin-openrc-system.sh
- This file contains credentials of Openstack.
B. OpenStack requires a clouds.yaml file where credentials for the admin user are set. To this file will be generated in /etc/kolla/clouds.yaml by running this command :
kolla-ansible post-deploy
openstack aggregate create --zone az1 my-aggregate
openstack aggregate create --zone az2 my-aggregate2
openstack aggregate add host my-aggregate compute1
openstack aggregate add host my-aggregate2 compute2
openstack aggregate list
openstack aggregate show my-aggregate
openstack aggregate show my-aggregate2
./init-runonce
cat /etc/kolla/clouds.yml
- Take the auth_url till the IP Address without the port : http://IP-Address:port
- You will find the admin user password as --> password: admin-user-password
You can also run this command ( Alternative Way ) :
grep keystone_admin_password /etc/kolla/passwords.yml
Main Guides :
- For Deploying Openstack Cloud using kolla-ansible : https://docs.openstack.org/kolla-ansible/latest/user/quickstart.html , https://docs.openstack.org/kolla-ansible/latest/user/multinode.html
- For Creating AZs : https://docs.openstack.org/nova/latest/admin/availability-zones.html
- Clarification For OpenStack Regions and Availability Zones : https://www.guruadvisor.net/en/cloud/121-openstack-regions-and-availability-zones































