Based on Official Guide: Kolla Ansible 2025.1 Development Quickstart
β All-in-One (AIO) Setup | β VirtualBox VM | β Fixed Common Issues
β Perfect for Evaluation, Learning Development & Production
π§ Deploy OpenStack All-in-One with Kolla Ansible β Fast, Reliable & Professional
- About Kolla Ansible
- Prerequisites
- Step-by-Step Installation
- Verify & Use OpenStack
- Manage & Maintain Your Cloud
- Cleanup / Uninstall
- π§ Troubleshooting & Common Issues
- π License & Credits
Kolla Ansible is an official OpenStack project that uses Ansible to deploy containerized OpenStack services via Docker. Itβs ideal for:
- Rapid deployment of OpenStack for testing or evaluation.
- Consistent, repeatable infrastructure as code.
- Production-ready architecture (scalable from single-node to multi-node).
β Why Use Kolla Ansible?
- Fully automated setup
- Built-in high availability (VIP + keepalived)
- Easy upgrades and maintenance
- Supports Ubuntu, Rocky Linux, CentOS
This guide uses the development-style installation method (cloning from Git) as per the official Kolla Ansible quickstart.
Ensure your VM meets these requirements:
| Requirement | Details |
|---|---|
| OS | Ubuntu 24.04 LTS or Rocky Linux 9 |
| RAM | 8 GB or more |
| Disk | 40+ GB free space |
| Network Interfaces | 3 NICs (NAT, Host-Only, Bridged) |
| User Privileges | Root access or sudo rights |
β 2+ vCPUs
β 8+ GB RAM
β 40+ GB Disk
β OS: Ubuntu 24.04.X LTS
β 3 Network Interfaces (as described)
| Interface | Type | IP Address | Purpose |
|---|---|---|---|
enp0s3 |
NAT | 10.0.2.15 |
Internet access |
enp0s8 |
Host-Only | 192.168.10.10 |
Management network |
enp0s9 |
Bridged | 192.168.102.221 |
External network for instances |
We'll use:
enp0s8βnetwork_interfaceenp0s9βneutron_external_interface- VIP β
192.168.10.250
Run all commands as root or with sudo.
π‘ Run all commands as root or use
sudo.
sudo apt update && sudo apt upgrade -y
apt install -y git python3-dev libffi-dev gcc libssl-dev libdbus-glib-1-dev python3-venv
π§ For Rocky/CentOS, use:
dnf install -y git python3-devel libffi-devel gcc openssl-devel python3-libselinux
python3 -m venv /opt/venv-kolla
source /opt/venv-kolla/bin/activate
pip install --upgrade pip
pip install docker
pip install dbus-pythonπ Keep this environment activated for all steps!
git clone --branch stable/2025.1 https://opendev.org/openstack/kolla-ansiblepip install ./kolla-ansible
mkdir -p /etc/kolla
chown $USER:$USER /etc/kollacp -r kolla-ansible/etc/kolla/* /etc/kolla/
cp kolla-ansible/ansible/inventory/* .kolla-ansible install-depskolla-ansible/tools/generate_passwords.pyπ All passwords are now securely generated in
/etc/kolla/passwords.yml
Edit the main config file:
nano /etc/kolla/globals.ymlUpdate with your settings:
# Base OS for containers
kolla_base_distro: "ubuntu"
# OpenStack release
kolla_install_type: "source"
# Management interface (host-only)
network_interface: "enp0s8"
# External interface for Neutron (bridged, no IP!)
neutron_external_interface: "enp0s9"
# Virtual IP for internal traffic (must be unused)
kolla_internal_vip_address: "192.168.10.250"
# Enable key services
enable_haproxy: "yes"
enable_keystone: "yes"
enable_glance: "yes"
enable_nova: "yes"
enable_neutron: "yes"
enable_placement: "yes"
enable_horizon: "yes"
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes"
enable_heat: "yes"Save and exit (Ctrl+O, Enter, Ctrl+X).
Installs Docker and other required tools.
kolla-ansible bootstrap-servers -i all-in-onekolla-ansible prechecks -i all-in-oneβ If it fails due to missing Python modules, see Troubleshooting below.
Deploy all services in containers:
kolla-ansible deploy -i all-in-oneπ This may take 10β20 minutes.
β
Wait for: PLAY RECAP with 0 failed tasks.
kolla-ansible post-deploy -i ~/all-in-oneβ Output:
/etc/kolla/clouds.yamland/etc/kolla/admin-openrc.sh
pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/2025.1source /etc/kolla/admin-openrc.shTest connection:
openstack token issueβ You should see a valid authentication token.
Creates sample network, image, and instance.
kolla-ansible/tools/init-runonce
β οΈ Only for testing! Do not run in production.
Open in browser:
http://192.168.10.10
or
http://192.168.102.221
Login with:
- Username:
admin - Password: See
/etc/kolla/passwords.ymlβkeystone_admin_password
Get password:
grep keystone_admin_password /etc/kolla/passwords.yml| Task | Command |
|---|---|
| Redeploy (e.g., after config change) | kolla-ansible deploy -i ~/all-in-one |
| Restart specific service (Nova) | kolla-ansible deploy -i ~/all-in-one --tags nova |
| Stop all containers | kolla-ansible stop -i ~/all-in-one |
| Pull latest images | kolla-ansible pull -i ~/all-in-one |
| View logs | docker logs <container_name> |
| List running containers | docker ps |
When upgrading to a new version:
# Pull new images
kolla-ansible pull -i ~/all-in-one
# Run upgrade playbook
kolla-ansible upgrade -i ~/all-in-one
β οΈ Always backup first!
To completely remove OpenStack:
kolla-ansible destroy -i ~/all-in-one --yes-i-really-really-mean-it
β οΈ Warning: This deletes all data, including volumes and databases.
Then remove config and virtual env:
rm -rf /etc/kolla
rm -rf /opt/venv-kolla
rm -rf ~/kolla-ansibleHere are real problems you faced and their perfect fixes, plus other likely issues.
Error during prechecks:
failed: [localhost] ... ModuleNotFoundError: No module named 'docker'
β Solution:
Install docker in the Ansible runtime environment:
pip install docker
or
/opt/ansible-runtime/bin/pip install dockerError:
import dbus; ModuleNotFoundError: No module named 'dbus'
β Solution:
Install dbus-python in the Ansible runtime:
pip install dbus-python
or
/opt/ansible-runtime/bin/pip install dbus-pythonπ Requires system package:
libdbus-glib-1-dev(already installed above).
Error:
Kolla inventory /etc/kolla/ansible/inventory/all-in-one is invalid: Path does not exist
β Solution:
Create the correct directory and copy the file:
mkdir -p /etc/kolla/ansible/inventory
cp all-in-one /etc/kolla/ansible/inventory/all-in-oneOr always specify -i:
kolla-ansible post-deploy -i all-in-oneSymptoms:
- Instances can't reach internet
- Floating IPs not accessible
β Fix:
Ensure neutron_external_interface has no IP address:
ip addr flush dev enp0s9And disable any network manager control over it.
Error in prechecks about NTP.
β Fix:
Enable time sync:
timedatectl set-ntp true
timedatectl statusSymptom: Docker fails to start or containers crash.
β Fix:
- Allocate at least 8GB RAM and 40GB disk to VM.
- Monitor usage:
df -h,free -h
- Guide Version: 2025.1
- Author: Sumon Paul
- Source: Based on OpenStack Kolla Ansible Docs
- License: MIT (Feel free to reuse and modify)
β
Congratulations!
Youβve successfully deployed a fully functional single-node OpenStack cloud using Kolla Ansible.
Use this environment to learn Nova, Neutron, Cinder, Horizon, and more!
π¬ Need Help?
Have questions or improvements? Open an issue or contact me!
β¨ Happy Cloud Building!