Before touching OpenStack, you need to master Linux CLI administration, computer networking concepts, KVM/QEMU virtualization, and REST API basics. In this episode you also set up the DevStack lab, install the OpenStack CLI Client, and verify your first environment.

Welcome to the Learn OpenStack series! This series will take you through mastering OpenStack — an open-source Infrastructure-as-a-Service (IaaS) platform for building private clouds — from conceptual foundations to production readiness. There are 21 episodes in total, organized across six phases.
But before touching the openstack CLI and dashboard, there are some foundational skills and lab tools you must have. Why are these prerequisites important? Because OpenStack is not just an application you install and you're done. It's a collection of services that communicate through APIs, virtual networks, and hypervisors — and all of its operations revolve around these concepts. If you don't yet understand Linux and networking basics, every error you run into later will feel like a black box.
This episode 0 is your roadmap: we'll make sure the foundational skills are in place, prepare lab hardware, install DevStack, set up the OpenStack CLI, and run the first verification. Once this episode is complete, the rest of the series can be followed comfortably.
OpenStack runs on Linux. You must be comfortable with the terminal on both Debian/Ubuntu and RHEL-based systems. Master basic operations such as user management, file permissions, managing services with systemctl, and installing packages. Also get into the habit of using sudo correctly:
cat /etc/os-release
whoami
uname -aThe output of cat /etc/os-release shows your system distribution and version. For this series, DevStack is most stable on Ubuntu LTS.
You need to understand IP addresses, subnetting, VLAN, routing, NAT, and bridging. OpenStack builds virtual networks on top of these capabilities. Understand the difference between CIDRs such as /24 and /16, how gateways work, and how NAT rewrites addresses. Without this foundation, episodes 6-7 on Neutron will feel difficult.
OpenStack runs VM instances on top of KVM/QEMU, with libvirt as the management layer. Make sure your CPU supports virtualization:
grep -cE "vmx|svm" /proc/cpuinfoIf the output is greater than 0, your CPU supports VT-x (Intel) or AMD-V (AMD). Also verify that KVM is available:
ls -l /dev/kvmEvery interaction with OpenStack happens through RESTful APIs with JSON payloads. Master HTTP request methods such as GET, POST, PUT, and DELETE, plus the concepts of tokens and status codes. Try a small exercise with curl:
curl -s https://api.openstack.org/api-ref | head -n 5This understanding will help you read the OpenStack API documentation and understand what the CLI is actually doing.
For a learning lab, you need 1-3 servers or VMs with the following specifications:
A single all-in-one DevStack node is the best starting point. There's no harm in starting from a single node before studying the multi-node topology in episode 14.
DevStack is a script that builds a complete OpenStack environment on a single node — designed specifically for development and experimentation. Clone and run it as a non-root user:
sudo useradd -s /bin/bash -d /opt/stack -m stack
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
sudo -u stack -i
git clone https://opendev.org/openstack/devstack /opt/stack/devstack
cd /opt/stack/devstack
./stack.shThe ./stack.sh process will take a while because it downloads many packages. At the end of the output, you'll see the Horizon dashboard URL and admin credentials.
Alternatives for quick experimentation: Microstack and Sunbeam, both Snap-based and offering minimal OpenStack deployments. Sunbeam is now the modern path, built on Juju and Kubernetes. Both are great for getting started within 10-15 minutes, but DevStack is closer to production deployments, so that's what we use in this series.
All commands in this series use the official CLI client. Install it in a virtual environment so it doesn't interfere with your system:
python3 -m venv ~/.openstack-venv
source ~/.openstack-venv/bin/activate
pip install python-openstackclientOnce installed, verify:
openstack --versionopenstack --version will display the python-openstackclient version and the supported OpenStack version. This client handles all services — from Keystone to Octavia — with a single command.
Info
Always run the CLI inside the same virtual environment. Installing python-openstackclient directly into your system Python can break other environments because of its many dependencies.
Before moving on to episode 1, run a quick verification to make sure everything is ready:
This is your host IP address: 10.0.0.10
Horizon is now available at http://10.0.0.10/dashboard
Keystone is serving at http://10.0.0.10/identity/Open the Horizon dashboard and log in with the admin credentials from the output. For the CLI, source the environment file generated by DevStack:
source /opt/stack/devstack/openrc admin admin
openstack service listopenstack service list shows all running OpenStack services — and this serves as the entry point for the discussion in episodes 1 and 2.
In this episode 0, you've laid the foundation for the entire series: understanding foundational Linux, networking, KVM/QEMU, and REST API skills, preparing lab hardware, installing the all-in-one DevStack, setting up the OpenStack CLI client, and verifying your first services.
Key takeaways:
ls -l /dev/kvm.openstack service list.In episode 1, we'll cover OpenStack's history, background, and main architecture — from OpenStack's birth by Rackspace and NASA in 2010, the IaaS concept, the roles of Control Plane, Compute, Network, and Storage Nodes, to its comparison with VMware vSphere, CloudStack, and Proxmox. Make sure your lab is ready, because the Learn OpenStack journey is just beginning!