DevStack is a set of extensible shell scripts that deploy a complete OpenStack cloud on a single machine for development, testing, and learning. It is not a production installer, and it should not be treated as one. This guide explains what DevStack is, how it differs from OpenStack, and when it is the right tool to use.

Here is the situation. You need to understand OpenStack — Keystone, Glance, Nova, Neutron, Cinder, Horizon — but provisioning a full multi-node cloud is complex and slow. DevStack collapses everything onto one virtual machine or Linux PC. You clone the repository, write a short configuration file, run one script, and have a running OpenStack environment with a dashboard in roughly 15 to 30 minutes. You will want to know how to search text with grep and sed when you need to inspect DevStack logs or configuration files, and how to locate files with the Linux find command if you need to track down where DevStack placed something on disk.

The official OpenStack documentation describes DevStack as “a series of extensible scripts used to quickly bring up a complete OpenStack environment based on the latest versions of everything from git master.” That is what it is: a development and testing tool, not a general-purpose cloud installer.

What DevStack actually is

DevStack is an Apache-2.0 licensed collection of scripts maintained by the OpenStack community (opendev.org/openstack/devstack). Its primary script, stack.sh, clones OpenStack service repositories from git, installs dependencies, configures databases and message queues, and boots the core services — all on the single host where you run it.

The important distinction is that DevStack is disposable. It installs things and removes things, and the OpenStack documentation itself warns that running it on a system you care about is “a recipe for disappointment.” DevStack should only be run on clean, dedicated virtual machines that you are comfortable rebuilding.

DevStack vs OpenStack: the distinction that matters

The most common confusion is conflating DevStack with OpenStack. They are not the same thing.

OpenStack DevStack
What it is A production-grade cloud operating system (IaaS) A set of shell scripts that installs OpenStack for dev and testing
Purpose Run public or private clouds at scale Learn, develop, test, and demo OpenStack quickly
Deployment scope Multiple physical or virtual servers Single host, all-in-one
Persistence / HA Built for high availability and backups No persistence, no high availability
Hardware Multiple compute and storage nodes One machine or VM (~32 GB RAM recommended for a full stack)

The judgment here matters: DevStack is not a substitute for OpenStack in production. Use it to learn how services interact, to reproduce an issue, or to validate a plugin idea. When you need a cloud that serves traffic, look at a production OpenStack distribution — not DevStack.

Core services DevStack brings up

When stack.sh finishes, you have a working OpenStack environment with these core services:

  • Keystone — identity and authentication
  • Glance — image service
  • Nova — compute
  • Cinder — block storage
  • Neutron — networking
  • Horizon — the web dashboard

You access Horizon at http://<your-host-ip>/dashboard, log in as admin, and use the password you set in the local.conf configuration file. Having all six services on one machine lets you see how an image flows from Glance into Nova, how Neutron assigns networking, and how Horizon reflects it all — without the operational overhead of a distributed cluster.

Who should use DevStack, and who should not

DevStack fits three scenarios:

  • Learning OpenStack. It is the fastest way to see every core service running together.
  • Testing changes. If you are experimenting with a configuration or a plugin, you can rebuild the stack quickly.
  • Demos. A single VM with a working dashboard is enough to show how OpenStack works.

DevStack is not appropriate for:

  • Production workloads — it lacks persistence, high availability, and robust init scripts
  • Multi-node cloud architectures — it is all-in-one by design
  • Long-lived environments — treat it as disposable and rebuild rather than patch

A quick start overview

Here is the workflow:

  1. Start with a clean Ubuntu 24.04 LTS (or Rocky Linux 9) virtual machine.
  2. Create a non-root stack user with passwordless sudo — DevStack must not run as root.
  3. Clone DevStack from https://opendev.org/openstack/devstack.git.
  4. Create a local.conf file with passwords and HOST_IP.
  5. Run ./stack.sh and wait 15 to 30 minutes.
  6. Open Horizon and confirm the services are up.

The detailed installation steps are covered in a separate guide, and local.conf configuration is explained in its own reference. If you are not familiar with how shell variables and quoting work in the scripts DevStack runs, our Bash parameter expansion and quoting reference covers the rules that apply.

Why DevStack exists, and its limits

DevStack does exactly one thing well: it makes OpenStack approachable on a single machine. It is not a tool for everything, but for learning and testing OpenStack, it is the natural starting point. The trade-off is honesty about its limits — it is disposable, it modifies the host heavily, and it is not for production. If you keep those boundaries in mind, DevStack is a genuinely useful part of the OpenStack toolkit.

Related reading

  • DevStack vs OpenStack: the key differences — for when you need to decide between a dev tool and a production cloud
  • How to install DevStack on Ubuntu 24.04 — step-by-step walkthrough
  • DevStack local.conf explained — configuration options and examples

References