OpenStack Kolla All in One

Kolla-Ansible deploys OpenStack services as Docker containers, providing clean isolation and simple upgrades. An all-in-one (AIO) Kolla deployment runs every service on a single host, making it ideal for development, testing, and proof-of-concept environments. This guide deploys OpenStack 2024.2 Dalmatian using Kolla-Ansible on Ubuntu 22.04.

Why Kolla-Ansible?

Feature DevStack Kolla-Ansible
Deployment method Git checkout + scripts Docker containers
Survives reboot No Yes
Upgrades Rebuild from scratch Rolling container updates
Production ready No Yes (multi-node)
Cleanup Messy kolla-ansible destroy

Prerequisites

Requirement Minimum
OS Ubuntu 22.04 LTS (fresh)
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

Copy the default configuration files:

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

Generate passwords:

kolla-genpwd

Step 4: Edit globals.yml

Edit /etc/kolla/globals.yml:

---
kolla_base_distro: "ubuntu"
openstack_release: "2024.2"
kolla_internal_vip_address: "10.0.0.10"
network_interface: "ens192"          # management interface
neutron_external_interface: "ens224"  # external/provider interface
enable_haproxy: "no"                 # not needed for AIO

# Optional services
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes"
cinder_volume_group: "cinder-volumes"

enable_horizon: "yes"

Set the kolla_internal_vip_address to an unused IP on the management network (or the host IP for AIO).

Step 5: Prepare the LVM Backend (Optional)

If enabling Cinder with LVM:

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

Step 6: Bootstrap the Host

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

This installs Docker, configures the host, and prepares everything for container deployment.

Step 7: Pre-deployment Checks

kolla-ansible -i all-in-one prechecks

Fix any errors before proceeding.

Step 8: Deploy OpenStack

kolla-ansible -i all-in-one deploy

This pulls container images and starts all OpenStack services. Takes 20–40 minutes.

Step 9: Post-Deployment Setup

Generate the admin credentials file:

kolla-ansible -i all-in-one post-deploy
source /etc/kolla/admin-openrc.sh

Install the OpenStack CLI:

pip install python-openstackclient

Run the init script to create demo resources:

/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:

http://10.0.0.10/
Username: admin
Password: (from /etc/kolla/passwords.yml, keystone_admin_password)

Managing the Deployment

Task Command
Stop all services kolla-ansible -i all-in-one stop
Start all services kolla-ansible -i all-in-one deploy
Reconfigure kolla-ansible -i all-in-one reconfigure
Upgrade Update pip package, then kolla-ansible -i all-in-one upgrade
Destroy everything kolla-ansible -i all-in-one destroy --yes-i-really-really-mean-it
View container logs docker logs <container_name>
List containers docker ps --format 'table {{.Names}}\t{{.Status}}'

Troubleshooting

Issue Fix
Prechecks fail on Docker Ensure Docker CE is installed (bootstrap should handle this)
Container crash loop Check docker logs <container> for errors
Horizon not loading Verify kolla_internal_vip_address is correct
Cinder LVM error Ensure volume group exists: vgs cinder-volumes
Deploy hangs Check Ansible output; re-run with -vvv for verbose

Summary

Kolla-Ansible provides a containerized, reboot-safe OpenStack deployment. The AIO mode gives you a complete cloud on a single host, with the same tooling that scales to multi-node production clusters.