How to Install OpenStack on Ubuntu 18.04 with DevStack

Filed Under: Ubuntu

Openstack is a free and opensource IaaS cloud platform that handles cloud compute, storage and network resources. It comes with an intuitive dashboard that enables systems administrators to provide and monitor these resources.

You can seamlessly install OpenStack locally on your Ubuntu 18.04 instance for learning and testing purposes using Devstack.

Devstack is a set of extensible scripts that facilitate OpenStack deployment. In this guide, you will learn how to deploy OpenStack on Ubuntu 18.04 with devstack.

Minimum Requirements

Before we begin, ensure you have the following minimum prerequisites

  1. A fresh Ubuntu 18.04 installation
  2. User with sudo privileges
  3. 4 GB RAM
  4. 2 vCPUs
  5. Hard disk capacity of 10 GB
  6. Internet connection

With the minimum requirements satisfied, we can now proceed.

Step 1: Update and Upgrade the System

To start off, log into your Ubuntu 18.04 system using SSH protocol and update & upgrade system repositories using the following command.

apt update -y && apt upgrade -y

Sample Output

Update And Upgrade Ubuntu 18 04 Bionic Beaver

Next reboot the system using the command.

sudo reboot


init 6

Step 2: Create Stack user and assign sudo priviledge

Best practice demands that devstack should be run as a regular user with sudo privileges.

With that in mind, we are going to add a new user called “stack” and assign sudo privileges.

To create stack user execute

sudo adduser -s /bin/bash -d /opt/stack -m stack

Next, run the command below to assign sudo privileges to the user

echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack

Sample Output

Add Stack User And Assign Sudo Privileges

Step 3: Install git and download DevStack

Once you have successfully created the user ‘stack’ and assigned sudo privileges, switch to the user using the command.

su - stack

In most Ubuntu 18.04 systems, git comes already installed. If by any chance git is missing, install it by running the following command.

sudo apt install git -y

Sample output

Switch To Stack User And Install Git

Using git, clone devstack’s git repository as shown.

git clone

Sample output

Deploy Devstack

Step 4: Create devstack configuration file

In this step, navigate to the devstack directory.

cd devstack

Then create a local.conf configuration file.

vim local.conf

Paste the following content


# Password for KeyStone, Database, RabbitMQ and Service

# Host IP - get your Server/VM IP address from ip addr command

Save and exit the text editor.


  1. The ADMIN_PASSWORD is the password that you will use to log in to the OpenStack login page. The default username is admin.
  2. The HOST_IP is your system’s IP address that is obtained by running ifconfig or ip addr commands.

Step 5: Install OpenStack with Devstack

To commence the installation of OpenStack on Ubuntu 18.04, run the script below contained in devstack directory.


The following features will be installed:

  • Horizon – OpenStack Dashboard
  • Nova – Compute Service
  • Glance – Image Service
  • Neutron – Network Service
  • Keystone – Identity Service
  • Cinder – Block Storage Service
  • Placement – Placement API

The deployment takes about 10 to 15 minutes depending on the speed of your system and internet connection. In our case, it took roughly 12 minutes.

At the very end, you should see output similar to what we have below.

Devstack Installed

This confirms that all went well and that we can proceed to access OpenStack via a web browser.

Step 6: Accessing OpenStack on a web browser

To access OpenStack via a web browser browse your Ubuntu’s IP address as shown.


This directs you to a login page as shown.

Openstack login page

Enter the credentials and hit “Sign In

You should be able to see the Management console dashboard as shown below.

Openstack Admin Dashboard

For more on Devstack’s customization, check out their system configuration guide.

Additionally, check out the Openstack documentation for administration guide.


  1. Sathish says:

    I got this error in installation time Ubutnu 18.04, please help me anybody

    env http_proxy= https_proxy= no_proxy= PIP_FIND_LINKS= SETUPTOOLS_SYS_PATH_TECHNIQUE=rewrite /opt/stack/requirements/.venv/bin/pip install -c /opt/stack/requirements/upper-constraints.txt -U pbr
    env: ‘/opt/stack/requirements/.venv/bin/pip’: No such file or directory
    +inc/python:pip_install:1 exit_trap
    +./ local r=127
    ++./ jobs -p
    +./ jobs=
    +./ [[ -n ” ]]
    +./ ‘[‘ -f ” ‘]’
    +./ kill_spinner
    +./ ‘[‘ ‘!’ -z ” ‘]’
    +./ [[ 127 -ne 0 ]]
    +./ echo ‘Error on exit’
    Error on exit
    +./ type -p generate-subunit
    +./ generate-subunit 1581765591 41 fail
    +./ [[ -z /opt/stack/logs ]]
    +./ /opt/stack/devstack/tools/ -d /opt/stack/logs
    World dumping… see /opt/stack/logs/worlddump-2020-02-15-112032.txt for details
    +./ exit 127

    1. Sathish says:

      Its Working Properly, Thank You so much

  2. gouthami says:

    Error on exit
    World dumping… see /opt/stack/logs/worlddump-2020-02-06-154209.txt for details
    ebtables v1.8.3 (nf_tables): table `broute’ is incompatible, use ‘nft’ tool.

    stack@HP-Z210-Workstation:~/devstack/tools$ cat /opt/stack/logs/worlddump-2020-02-06-154209.txt|grep broute
    sudo ebtables -t broute -L
    *** Failed to run ‘sudo ebtables -t broute -L’: Command ‘sudo ebtables -t broute -L’ returned non-zero exit status 1

  3. Mario says:

    Distro ubuntu 19.10
    problem is : failed
    Error on exit
    World dumping… see /opt/stack/logs/worlddump-2020-02-06-154209.txt for details
    ebtables v1.8.3 (nf_tables): table `broute’ is incompatible, use ‘nft’ tool.

    stack@HP-Z210-Workstation:~/devstack/tools$ cat /opt/stack/logs/worlddump-2020-02-06-154209.txt|grep broute
    sudo ebtables -t broute -L
    *** Failed to run ‘sudo ebtables -t broute -L’: Command ‘sudo ebtables -t broute -L’ returned non-zero exit status 1

    help me ?

    NB: apt update -y && apt upgrade -y : executed upgrade , i start directely ubuntu 19.10 desktop

  4. amar says:

    +./ echo_summary ‘Installing package prerequisites’
    +./ [[ -t 3 ]]
    +./ [[ True != \T\r\u\e ]]
    +./ echo -e Installing package prerequisites
    ++./ exit_trap
    ++./ local r=1
    +++./ jobs -p
    ++./ jobs=
    ++./ [[ -n ” ]]
    ++./ ‘[‘ -f ” ‘]’
    ++./ kill_spinner
    ++./ ‘[‘ ‘!’ -z ” ‘]’
    ++./ [[ 1 -ne 0 ]]
    ++./ echo ‘Error on exit’
    ./ line 551: echo: write error: Broken pipe

  5. Ricardo Mejias says:

    Hello, I am installing openstack on ubuntu 18.04 and this command that su recommend do not work — sudo adduser -s /bin/bash -d /opt/stack -m stack

    1. Pankaj says:

      what’s the error you are getting?

  6. Lester Carrejo says:

    Step 2 should be useradd instead of adduser.

Leave a Reply

Your email address will not be published. Required fields are marked *

Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages