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.