Install DevStack on a clean, disposable Linux VM or server—preferably Ubuntu 24.04—with a non-root user that has sudo access. Clone the DevStack repository, create a four-password local.conf, and run ./stack.sh. A clean installation commonly takes 15–30 minutes, but network speed, package access and configuration affect the duration. DevStack is for learning and functional testing, not production.
What DevStack is—and why the host must be disposable
DevStack is a collection of scripts that quickly assembles an OpenStack environment for interactive development and functional testing. A default installation brings up Keystone, Glance, Nova, Placement, Cinder, Neutron and Horizon, giving you a practical environment for trying the API, dashboard, identity, compute, networking, image and volume workflows.
The trade-off is that the scripts alter packages, services, networking and other system settings. OpenStack’s documentation warns: “DevStack will make substantial changes to your system during installation. Only run DevStack on servers or virtual machines that are dedicated to this purpose.” Do not install it on your daily workstation or a server that hosts unrelated workloads. A disposable VM is often the easiest lab to reset; a dedicated physical or cloud server is also suitable.
Choose the operating system and host
Supported distributions
Current DevStack documentation aims to support the two latest Ubuntu LTS releases, Rocky Linux 9 and openEuler. If you have no distribution constraint, Ubuntu 24.04 (Noble) is identified as the most tested choice. Start with a minimal installation rather than a desktop image loaded with unrelated software.
Free tools Windows power users keep installed
One-click scans. No signup required.
#1 Best Overall
VM, cloud VM or dedicated server?
All three models work when the machine is isolated for DevStack. A VM makes snapshots and deletion straightforward, while a cloud VM or dedicated Linux lab server avoids consuming local hardware. The 2025.2 cloud setup documentation says performance is best with 4 GB or more of RAM. That is a practical guideline for the documented setup, not a universal minimum for every service combination; your enabled services and workload determine the actual requirement.
Single-node or several nodes?
Use one node for the shortest path to a working cloud. Move to multiple nodes only when the exercise needs control/compute separation, scheduler placement across hosts or cross-node networking. The comparison later in this guide helps make that choice before you install.
Prepare a clean single-node target
Install the basics
Give the VM or server a stable hostname and network connection, then install Git and sudo. On Ubuntu, an administrator can run:
sudo apt update
sudo apt install -y git sudo
Use the equivalent package command for Rocky Linux or openEuler. Make sure outbound access to package repositories and Git services is available; blocked or slow access is a common reason a run exceeds the normal estimate.
Run as a non-root account
DevStack should be run by an ordinary user with passwordless sudo, not by root. The quick start uses a stack account whose home directory is /opt/stack. If you create that account yourself on Ubuntu, one example is:
sudo useradd -s /bin/bash -d /opt/stack -m stack
sudo chmod 0755 /opt/stack
echo 'stack ALL=(ALL) NOPASSWD: ALL' | sudo tee /etc/sudoers.d/stack
sudo chmod 0440 /etc/sudoers.d/stack
sudo su - stack
Check that the account can use sudo and that every directory in its home path is executable. If your organization uses a different sudo policy, grant the equivalent privileges before proceeding.
Install DevStack on one node
-
Clone the repository
As the
stackuser, clone the upstream repository and enter the checkout:cd ~ git clone https://opendev.org/openstack/devstack https://opendev.org/openstack/devstack cd devstackUse the branch appropriate for the OpenStack release you are studying when your course or lab specifies one. Otherwise, work from the branch documented for your current DevStack installation.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.Rank #3
-
Create
local.confCreate a file named
local.confat the repository root:[[local|localrc]] ADMIN_PASSWORD=secret DATABASE_PASSWORD=$ADMIN_PASSWORD RABBIT_PASSWORD=$ADMIN_PASSWORD SERVICE_PASSWORD=$ADMIN_PASSWORDThese four values are the minimum documented example. DevStack documentation cautions that the passwords should contain only alphanumeric characters because some services can fail when special characters are present. For a lab that is reachable by anyone outside your private network, use strong, unique alphanumeric secrets rather than the example value, and protect the file’s permissions.
-
Run the installer
Remain in the DevStack directory and execute:
./stack.shThe official estimate for a clean installation is 15–30 minutes. Most of that time is package installation and downloading Git trees; a slow mirror, restricted outbound access, limited resources or an old configuration can make it take considerably longer. Keep the terminal output and any logs produced by the run if it fails.
Use and verify the finished cloud
Open Horizon
When stack.sh completes, open the Horizon dashboard in a browser using the lab node’s address and the dashboard URL reported by DevStack. Sign in with the administrative credentials from local.conf. Use the dashboard to create and inspect images, flavors, networks, servers and volumes.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsRank #4
Load credentials for the CLI
In the shell where you will use OpenStack commands, source the generated environment file:
cd ~/devstack
source openrc
Then perform a verification pass. The exact services and output vary by branch and configuration, so treat these as checks rather than a fixed expected transcript:
openstack token issue
openstack service list
openstack compute service list
openstack network agent list
openstack image list
openstack volume service list
openstack server list
- Confirm that Horizon loads and accepts an identity login.
- Check that the identity, compute, network, image and block-storage services appear healthy.
- Confirm that the CLI can authenticate and list resources.
- Create a small test network or server only after the basic service checks pass.
Plan a multi-node DevStack lab
A multi-node installation is valuable when the lesson itself depends on several hosts. It is not simply a larger single-node installation: every node needs a role, a reachable address and consistent configuration.
Prerequisites
- Fresh Linux installations for each node.
- Git and sudo available on every node.
- Static IP addresses and reliable name or address resolution between nodes.
- A planned subnet from which you allocate host addresses and floating IP addresses.
- Enough CPU, memory and storage for the services assigned to each node.
The official multi-node example uses OpenStack’s FlatDHCP network controller and a dedicated subnet. Select the networking model deliberately; do not copy a FlatDHCP example into a network that has different addressing or routing requirements.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallBest Value
Build sequence
- Draw the topology and reserve addresses before installing: identify the controller, compute and any network or storage roles, then mark the host and floating ranges.
- Install the same supported Linux family and bootstrap packages on each fresh node.
- Create the non-root DevStack account with sudo on every node and verify inter-node connectivity.
- Prepare role-specific configuration files. Keep passwords and release branches consistent, while enabling only the services each role needs.
- Run the multi-node procedure from the DevStack documentation for the branch you selected; options and role names can change between releases.
- After all nodes finish, verify service registration, scheduler visibility and network reachability from the controller and compute hosts.
Because multi-node configuration is release- and topology-sensitive, a single-node lab is usually the better first installation. Build the larger lab after you can reset and verify one node reliably.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Single-node versus multi-node: which fits your lesson?
| Decision axis | Single node | Multi-node |
|---|---|---|
| Isolation and reset speed | Fast to snapshot, delete and recreate as one VM. | Requires coordinated resets across several machines. |
| CPU and RAM | All enabled services share one host; size the host for the combined load. | Services can be distributed, but every node needs its own capacity. |
| Network complexity | Minimal planning beyond the node’s connectivity. | Requires static addresses, a planned subnet, host/floating ranges and inter-node reachability. |
| Best learning goal | API, dashboard, identity, images, flavors, networks, volumes and basic VM operations. | Scheduler placement, control/compute separation and cross-node networking. |
Diagnose slow or failed runs
The installer runs much longer than expected
Check package and Git connectivity first. Slow mirrors, blocked outbound traffic and repeated downloads can dominate the run. Verify that the host has enough memory for the services you enabled and that you are not reusing a partially modified machine with stale configuration.
A service fails after a password change
Review every password in local.conf. Keep values alphanumeric and ensure the database, RabbitMQ, service and administrator settings are internally consistent. A typo in one value can leave a service unable to authenticate.
The run fails on a machine that already hosts other software
Do not attempt to preserve that machine as your production or daily-development environment. DevStack changes system state broadly. Capture the terminal output, record the configuration that was used, then discard or restore the dedicated VM and retry from a clean installation.
Recommended Free Tools
The dashboard loads but a check is missing
Compare the enabled services and the OpenStack branch you selected. DevStack’s defaults and command output can vary by branch and configuration. Re-run the CLI checks after sourcing openrc, and inspect the service-specific output before changing the topology.
Quick Recap
Keep the lab useful
- Snapshot a verified VM before major experiments so you can reset quickly.
- Keep
local.confwith the lab notes, but replace exposed secrets before sharing it. - Record the distribution, OpenStack branch, node addresses and enabled services for every rebuild.
- Destroy cloud VMs or shut down dedicated hardware when the exercise is complete; DevStack is intended to be disposable infrastructure.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

