OpenStack Havana All-in-One Lab: Using the Horizon Dashboard

We’ve come a long way already with our OpenStack Havana All-in-One lab, but we need to get to the customer facing side to really see what OpenStack will look like as we deploy and manage it. This is where we get to the OpenStack Dashboard tool which is known as Horizon.

In our first post (OpenStack Havana All-in-One Lab on VMware Workstation) we deployed the lab VM which gives us a minimally sized testing environment for OpenStack Havana feature testing. The lab is still fairly basic, but we will grow it along the way with some additional scripts as we append the other OpenStack projects into our build.

Following that post, we used the OpenStack Havana All-in-One: Booting your first Nova Instance post to launch a Nova instance from the console to illustrate how we create running guest instances on our Nova KVM hypervisor.

Time for the next steps.

Not just for the command line enthusiasts

Admittedly, I spend a significant amount of my day-to-day administration in shell scripts and command line even in Windows and vSphere environments. That being said, I am working on different tasks to create orchestration features for others so that they can use GUI tools to do their day-to-day administrative work.

Is this what you do when you hear it is command line only?
Is this what you do when you hear it is command line only?

Have no fear! There is a slick web UI that has been developed as a part of the OpenStack ecosystem. This is Horizon:


And the magical thing we have achieved is that it is already deployed inside your lab! Make sure that your OpenStack Havana All-in-One VM is online and you can access the Horizon interface by using the IP address as follows:


In my case, this was

At the log in screen, you have two different accounts that you can use to log in that have already been created for you. The first is our admin account:

User Name: admin

Password: openstack

When you log in with the admin account, you will see quite a few options and tabs available to you:


If you click on the Project tab in the left hand pane, you will see a nice view of the Usage Summary for your admin project. The pie charts are noticeably empty because we have no running instances.


Let’s launch an instance using Horizon to see what the user experience will be like. Remember how our command line process worked, and you will see why we had the parameters we used involved in the launch at the console.

Make sure you are in the Project tab in the left hand pane. Click on the Instances menu option and you will then see the Launch Instance button at the top right of your screen:


On the Details tab there are a few fields that we need to fill in to prepare our instance. Fill in the name as you’d like, which I’ve chosen as the ever original myinstance. Next, choose our flavor, which I’ve left as m1.tiny which will be a 1 GB boot volume and only uses 512 MB of RAM.

For the Instance Boot Source choose Boot from image as the option:


Once your boot source has been selected, you will use the Image Name drop down list to pick the Cirros 0.3.1 image that was uploaded during the all-in-one script process:


On the Access & Security tab, you have to select the Keypair to use. We will use the mykey Keypair we uploaded from the console prompt in the first post.

You can choose the Admin password, but in this case we won’t bother because we can just accept the default. This is meant to show us the deployment process more than anything.

Also, make sure that the Security Groups checkbox is checked for default:


We have all the information we need to proceed, so click the Launch button and watch what happens:


I see something happening!


Now you can see some activity in your Instances panel!

It worked!!

Yup, it worked! There are some options that you’ll see if you click on the right hand side in the More drop-list. There will be an error if you use the Associate Floating IP option because we haven’t created our floating IP pool yet. Don’t worry, we will get to that in our networking post.


You can choose what you’d like to do with your instance. It is important to understand the difference between Shut Off and Terminate though before you click. Shut Off means that the instance is shut down. For VMware admins, this is the same as the Shutdown Guest OS option.

Terminating the instance is, well, a little more aggressive.

Your instance is terminated
Your instance is terminated

What about the User Experience?

This is great for administrators, but one of the maxims of a cloud environment is a self-service interface for the customer. Not a problem! Log out of the Horizon dashboard using the Sign Out button at the top right.

At the login screen, you will use the customer credentials that we have created:

User Name: demo

Password: openstack

When you login with the demo account, the view is a little more stripped back because this is the consumer version of your OpenStack cloud.

You’ll notice that in the left hand pane that there is only a Project tab. This gives the consumer of our OpenStack cloud the ability to manage their own services within their tenant environment. As we enable more services, the control tabs will show up as more options are installed.


 As a “user” in the service, we can launch instances, create snapshots, manage security (tenant-only) and we can see the usage summary with the ability to export usage statistics to CSV.

What’s Next?

The next thing we will do is to dial it back a bit and go over some terminology. Don’t worry, we will be doing some more technical steps again soon after.

Take some time to navigate around the Horizon interface and become familiar with both the admin, and the customer experience. It will be important as we delve into more use cases with further posts.

Feel free to let me know if you have any comments or questions, and most of all, be sure to share this wherever you can to help bring more folks up to speed on how to get started with OpenStack Havana! 🙂

35 thoughts on “OpenStack Havana All-in-One Lab: Using the Horizon Dashboard”

  1. It is very nice effort for OpenStack Installation in one node. Could you please provide the OpenStack installation on two nodes with CentOS operating system.


    • Hi Kamrul,

      I’m hoping to put together a CentOS series at some point also. Definitely a lot of questions coming in about how to use that as the base.

      Thanks for your feedback!

  2. I just wanted to say THANK YOU! I am new to learning openstack and have used this to create a lab using vmware workstation 10 on my ubuntu 13 desktop. +++

  3. Hello Eric

    Thanks for replying, I have successfully installed Openstack now and it’s running. But currently facing a problem, after I have created myinstance and running it. When I try to use ciros it says “server refused the connection.”

    Please help me with this.


    • Hi Rajkumar,

      Sorry for the delay. I found the missing line that belongs in the /etc/nova/nova.conf file. I’ve updated the build script, and here is what the content of your should look like (excerpt only)



      The bolded line is the one that was needed. Once you do that you can restart the Nova services or reboot the system and that should get things back up and running for the console access.


      • If that doesn’t work for some reason, you can also specifically code your IP address. My example for that (using is as follows:


  4. Hi Eric,
    thank you so much for your effort, this guide was really helpful.
    I would like to ask you, as Kamrul if you can explain how to add a host to this setup. I guess it should be possible. thank you!

    • Hi Filippo,

      I’m crafting up a second node process for the lab. It is one of the most commonly requested features for sure!

      Hope to have it all set within a short time for everyone.


  5. hi Eric

    Is there any way to access “myinstance” from another terminal like the VM terminal or putty and log in to cirros which I have used to create the instance.


  6. Hi,
    Really nice tutorial.
    You state that instructions how to setup cinder are coming soon?
    Can you just change and put on some gist before you make article?
    It looks that cinder stuff is commented out and apt-get installs missing? Or even something more?

    • Thanks for the great feedback! I am definitely overdue for my Cinder addition. Life got a little fast paced in the last month and I fell behind on things.

      I’ve got a plan to update things for Cinder first in the next few days and then the follow up post will be the second compute node. Thanks for the reminder 🙂

  7. Great!
    Thank you very much. It’s the piece that is stopping me now.
    I’m trying to use then environment with juju and cloudfoundry.
    And probably they will need to make some volumes.
    Probably will go something like this then?

    Maybe one more observation.
    At the beginning of article NAT adapter has dhcp on.
    But with you push fixed settings?
    This somehow broke my network settings so I changed back to

    auto eth0
    iface eth0 inet dhcp

  8. Thanks Eric for your great job!
    In your lab, how to start the Horizon (dashboard), I noticed there is not instance running by default.

    Found the Horizon in /usr/share/openstack-dashboard directly.

    then run the horizon by command:
    /usr/share/openstack-dashboard# python runserver xx.xx.xx.xx:8000

    is it right?

  9. Hi ,
    I remove my vmware machine into a vmware that installed in macbook pro which uses i7 for CPU.
    and I move my customized ubuntu into this vmware and guess what happened!
    It works!
    Thank you so much!!!!!!!!! I love you!!!!!!!

  10. Wow Eric thank you so much !! This is amazing and it works : ) You saved me so much time trying to figure out what was wrong with my previous installation


Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.