OpenStack Kolla All in One

Deploy OpenStack 2024.2 on a single Ubuntu host using Kolla-Ansible with step-by-step commands for setup, configuration, and management.

OpenStack Kolla All in One

This guide deploys OpenStack 2024.2 (Dalmatian) on a single Ubuntu 22.04 host using Kolla-Ansible.

Prerequisites

  • OS: Ubuntu 22.04 LTS (Fresh install)
  • RAM: 8 GB (16 GB recommended)
  • Disk: 80 GB free
  • CPU: 4 cores
  • NICs: 2 interfaces (1 Management, 1 External)
  • Python: 3.10+

Step 1: Install Dependencies

sudo apt update && sudo apt upgrade -y
sudo apt install -y python3-dev python3-venv libffi-dev gcc libssl-dev git

Step 2: Create a Python Virtual Environment

python3 -m venv /opt/kolla-venv
source /opt/kolla-venv/bin/activate
pip install -U pip
pip install 'ansible-core>=2.16,<2.17'
pip install kolla-ansible==2024.2

Step 3: Configure Kolla

sudo mkdir -p /etc/kolla
sudo cp /opt/kolla-venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/
cp /opt/kolla-venv/share/kolla-ansible/ansible/inventory/all-in-one .
kolla-genpwd

Step 4: Edit globals.yml

Edit /etc/kolla/globals.yml to match your network interfaces:

---
kolla_base_distro: "ubuntu"
openstack_release: "2024.2"
kolla_internal_vip_address: "10.0.0.10"
network_interface: "ens192"
neutron_external_interface: "ens224"
enable_haproxy: "no"
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes"
cinder_volume_group: "cinder-volumes"
enable_horizon: "yes"

Step 5: Prepare the LVM Backend

sudo pvcreate /dev/sdb
sudo vgcreate cinder-volumes /dev/sdb

Step 6: Bootstrap the Host

kolla-ansible -i all-in-one bootstrap-servers

Step 7: Pre-deployment Checks

kolla-ansible -i all-in-one prechecks

Step 8: Deploy OpenStack

kolla-ansible -i all-in-one deploy

Step 9: Post-Deployment Setup

kolla-ansible -i all-in-one post-deploy
source /etc/kolla/admin-openrc.sh
pip install python-openstackclient
/opt/kolla-venv/share/kolla-ansible/init-runonce

Step 10: Verify

openstack service list
openstack compute service list
openstack network agent list
openstack volume service list

Access Horizon at http://10.0.0.10/ using username admin and the password found in /etc/kolla/passwords.yml (key: keystone_admin_password).

Managing the Deployment

  • Stop: kolla-ansible -i all-in-one stop
  • Start: kolla-ansible -i all-in-one deploy
  • Reconfigure: kolla-ansible -i all-in-one reconfigure
  • Upgrade: pip install -U kolla-ansible then kolla-ansible -i all-in-one upgrade
  • Destroy: kolla-ansible -i all-in-one destroy --yes-i-really-really-mean-it
  • Logs: docker logs <container_name>
  • List: docker ps --format 'table {{.Names}}\t{{.Status}}'

Troubleshooting

  • Prechecks fail: Re-run bootstrap-servers.
  • Container crash: Inspect logs with docker logs <container_name>.
  • Horizon not loading: Verify kolla_internal_vip_address in globals.yml is reachable.
  • Cinder LVM error: Confirm volume group exists: vgs cinder-volumes.
  • Deploy hangs: Re-run with verbose output: kolla-ansible -i all-in-one deploy -vvv.