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.
Before we begin, ensure you have the following minimum prerequisites
With the minimum requirements satisfied, we can now proceed.
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 Next reboot the system using the command.
sudo reboot
OR
init 6
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
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 Using git, clone devstack’s git repository as shown.
git clone https://git.openstack.org/openstack-dev/devstack
Sample output
In this step, navigate to the devstack directory.
cd devstack
Then create a local.conf
configuration file.
vim local.conf
Paste the following content
[[local|localrc]]
# Password for KeyStone, Database, RabbitMQ and Service
ADMIN_PASSWORD=StrongAdminSecret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
# Host IP - get your Server/VM IP address from ip addr command
HOST_IP=10.208.0.10
Save and exit the text editor. NOTE:
ADMIN_PASSWORD
is the password that you will use to log in to the OpenStack login page. The default username is admin.HOST_IP
is your system’s IP address that is obtained by running ifconfig
or ip addr
commands.To commence the installation of OpenStack on Ubuntu 18.04, run the script below contained in devstack directory.
./stack.sh
The following features will be installed:
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. This confirms that all went well and that we can proceed to access OpenStack via a web browser.
To access OpenStack via a web browser browse your Ubuntu’s IP address as shown. https://server-ip/dashboard
This directs you to a login page as shown. Enter the credentials and hit “Sign In” You should be able to see the Management console dashboard as shown below. For more on Devstack’s customization, check out their system configuration guide. Additionally, check out the Openstack documentation for administration guide.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
While we believe that this content benefits our community, we have not yet thoroughly reviewed it. If you have any suggestions for improvements, please let us know by clicking the “report an issue“ button at the bottom of the tutorial.
Step 2 should be useradd instead of adduser.
- Lester Carrejo
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
- Ricardo Mejias
+./stack.sh:main:791 echo_summary ‘Installing package prerequisites’ +./stack.sh:echo_summary:452 [[ -t 3 ]] +./stack.sh:echo_summary:452 [[ True != \T\r\u\e ]] +./stack.sh:echo_summary:458 echo -e Installing package prerequisites ++./stack.sh:echo_summary:1 exit_trap ++./stack.sh:exit_trap:533 local r=1 +++./stack.sh:exit_trap:534 jobs -p ++./stack.sh:exit_trap:534 jobs= ++./stack.sh:exit_trap:537 [[ -n ‘’ ]] ++./stack.sh:exit_trap:543 ‘[’ -f ‘’ ‘]’ ++./stack.sh:exit_trap:548 kill_spinner ++./stack.sh:kill_spinner:443 ‘[’ ‘!’ -z ‘’ ‘]’ ++./stack.sh:exit_trap:550 [[ 1 -ne 0 ]] ++./stack.sh:exit_trap:551 echo ‘Error on exit’ ./stack.sh: line 551: echo: write error: Broken pipe
- amar
hello, Distro ubuntu 19.10 problem is : ack.sh 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
- Mario
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
- gouthami
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 +./stack.sh:exit_trap:535 local r=127 ++./stack.sh:exit_trap:536 jobs -p +./stack.sh:exit_trap:536 jobs= +./stack.sh:exit_trap:539 [[ -n ‘’ ]] +./stack.sh:exit_trap:545 ‘[’ -f ‘’ ‘]’ +./stack.sh:exit_trap:550 kill_spinner +./stack.sh:kill_spinner:445 ‘[’ ‘!’ -z ‘’ ‘]’ +./stack.sh:exit_trap:552 [[ 127 -ne 0 ]] +./stack.sh:exit_trap:553 echo ‘Error on exit’ Error on exit +./stack.sh:exit_trap:555 type -p generate-subunit +./stack.sh:exit_trap:556 generate-subunit 1581765591 41 fail +./stack.sh:exit_trap:558 [[ -z /opt/stack/logs ]] +./stack.sh:exit_trap:561 /opt/stack/devstack/tools/worlddump.py -d /opt/stack/logs World dumping… see /opt/stack/logs/worlddump-2020-02-15-112032.txt for details +./stack.sh:exit_trap:570 exit 127
- Sathish
is not sudo adduser -s /bin/bash -d /opt/stack -m stack, it is : sudo useradd -s /bin/bash -d /opt/stack -m stack
- Sam
Even following all the instructions regarding the user stack, I am receiving the error below. Exception: Traceback (most recent call last): File “/opt/stack/requirements/.venv/lib/python3.6/site-packages/pip/basecommand.py”, line 215, in main status = self.run(options, args) File “/opt/stack/requirements/.venv/lib/python3.6/site-packages/pip/commands/install.py”, line 342, in run requirement_set.prepare_files(finder) File “/opt/stack/requirements/.venv/lib/python3.6/site-packages/pip/req/req_set.py”, line 380, in prepare_files ignore_dependencies=self.ignore_dependencies)) File “/opt/stack/requirements/.venv/lib/python3.6/site-packages/pip/req/req_set.py”, line 554, in _prepare_file require_hashes File “/opt/stack/requirements/.venv/lib/python3.6/site-packages/pip/req/req_install.py”, line 281, in populate_link self.link = self._wheel_cache.cached_wheel(self.link, self.name) File “/opt/stack/requirements/.venv/lib/python3.6/site-packages/pip/wheel.py”, line 68, in cached_wheel self._cache_dir, link, self._format_control, package_name) File “/opt/stack/requirements/.venv/lib/python3.6/site-packages/pip/wheel.py”, line 129, in cached_wheel wheel_names = os.listdir(root) PermissionError: [Errno 13] Permission denied: ‘/opt/stack/.cache/pip/wheels/a7/c1/ea/cf5bd31012e735dc1dfea3131a2d5eae7978b251083d6247bd’
- Dalton
Hi Pankaj, Greetings! First of all thanks for tutorial. I have one question. How we can login to Openstack CLI mode to practice CLI configuration commands? Thanks
- Mujtaba Bashir
Dear Greetings! I tried to install with respective instruction installation goes for around 25 to 35 mins at the end it give exhibit below error and stop. Please guide accordingly ERROR: Cannot uninstall ‘simplejson’. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall. +inc/python:pip_install:1 exit_trap +./stack.sh:exit_trap:489 local r=1 ++./stack.sh:exit_trap:490 jobs -p +./stack.sh:exit_trap:490 jobs= +./stack.sh:exit_trap:493 [[ -n ‘’ ]] +./stack.sh:exit_trap:499 ‘[’ -f ‘’ ‘]’ +./stack.sh:exit_trap:504 kill_spinner +./stack.sh:kill_spinner:399 ‘[’ ‘!’ -z ‘’ ‘]’ +./stack.sh:exit_trap:506 [[ 1 -ne 0 ]] +./stack.sh:exit_trap:507 echo ‘Error on exit’ Error on exit +./stack.sh:exit_trap:509 type -p generate-subunit +./stack.sh:exit_trap:510 generate-subunit 1590671485 1360 fail +./stack.sh:exit_trap:512 [[ -z /opt/stack/logs ]] +./stack.sh:exit_trap:515 /usr/bin/python3.8 /home/stack01/devstack/tools/worlddump.py -d /opt/stack/logs World dumping… see /opt/stack/logs/worlddump-2020-05-28-133405.txt for details ebtables v1.8.4 (nf_tables): table `broute’ is incompatible, use ‘nft’ tool. +./stack.sh:exit_trap:524 exit 1 Thanks. Best Regards
- Mujtaba Bashir