Skip to content

Installing Ubuntu OpenStack on a Single Machine, Instead of 7

For an updated guide click here to read “Install OpenStack on a Single Ubuntu 16.04 Xenial Xerus Server – Updated!”

If you’ve read my other recent posts, you’ve probably notice I’ve been spending a lot of time with different cloud architectures. My previous guide on using DevStack to deploy a fully functional OpenStack environment on a single server was fairly involved, but not too bad. I’ve read quite a bit about Ubuntu OpenStack and it seems that Canonical has spent a lot of energy development their spin on it. So, now I want to set up Ubuntu OpenStack. All of Ubuntu’s official documentation and guides state a minimum requirement of 7 machines (server). However, although I could probably round up 7 machines, I really do not want to spend that much effort and electricity. After scouring the internet for many hours, I finally found some obscure documentation stating that Ubuntu OpenStack could in fact be installed on a single machine. It does need to be a pretty powerful machine; the minimum recommended specifications are:

  • 8 CPUs (4 hyperthreaded will do just fine)
  • 12GB of RAM (the more the merrier)
  • 100GB Hard Drive (I highly recommend an SSD)

With the minimum recommended specs being what they are, my little 1u server may or may not make the cut, but I really don’t want to take any chances. I’m going to use another server, a much larger 4u, to do this. Here are the specs of the server I’m using:

  • Supermicro X7DAL Motherboard
  • Xeon W5580 4 Core CPU (8 Threads)
  • 12GB DDR3 1333MHz ECC Registered RAM
  • 256GB Samsung SSD
  • 80GB Western Digital Hard Drive

I have installed Ubuntu 14.04 LTS, with OpenSSH Server being the only package selected during installation. So, if you have a machine that is somewhat close to the minimum recommended specs, go ahead and install Ubuntu 14.04 LTS. Be sure to run a sudo apt-get upgrade before proceeding.

Lets Get Started

First, we need to add the OpenStack installer ppa. Then, we need to update app. Do the following:

$ sudo apt-add-repository ppa:cloud-installer/stable

$ sudo apt-get update

Now that the cloud-installer ppa has been added, we can start the installation of OpenStack.

$ sudo apt-get install openstack

$ sudo openstack-install

Once you run openstack-install, you will see a text based GUI and will be prompted to select an OpenStack password. After you have entered, and rentered a password, select Confirm.

Screen Shot 2015-04-23 at 5.55.37 PM

Now you will be asked to select an Install Type. Since we want to install everything on a single machine, there is only one option that will work, “Single.” Select Single, then Confirm.

Screen Shot 2015-04-23 at 6.02.44 PM

Now the installation will kick off. It’s going to take a little time. Grab a cup of coffee, or a beer, and watch an episode of Stargate SG-1. It took about an hour on my hardware. You will know the hard part is over when you see this:
Screen Shot 2015-04-23 at 9.06.30 PM

And everything will be completely finished when you see this:


Now, you’re finished with the installation but you’re not quite finished. The installer created a private network for the cloud with a 10.x.x.x range. It is not accessible anywhere except from the cloud machine by default. To make the dashboard available from the rest of your actual network, you need to create an iptables port forward. This is the command to do that. You need to change the IP addresses in the command to the IP addresses listed in the bottom left corner when your installation finished, and the IP of your host machine. As you can see, mine was and So my command looks like this:

$ sudo iptables -t nat -A PREROUTING -p tcp -d --dport 8000 -j DNAT --to-destination

I forwarded port 443, because it is an https address, and secure http uses port 443. The source address,, is the ip of my host. You will need to change those IP addresses so your command is correct.

After you do that, you can connect to the horizon dashboard from another workstation on your network. You will enter the IP address of the host and not the VM directly. Think of your host as a router, with its IP being the public IP and the node, or horizon, being the internal IP. In my case, it would be

Now, this is VERY IMPORTANT. The last screen of the installation says the username is ubuntu. IT IS NOT. The username is admin, and the password is the password you selected (also listed correctly on the last installation screen). After you login, you will see this:

Screen Shot 2015-04-23 at 9.40.39 PM

Now you can get your hands dirty and start playing around. Have fun and let me know if you get stuck, in the comments.


Subscribe to future posts and updates!