This is a text-only version of the following page on https://raymii.org: --- Title : Openstack Horizon installation with SSL on Ubuntu Author : Remy van Elst Date : 29-05-2014 URL : https://raymii.org/s/tutorials/Openstack-Set-Up-Horizon-Dashboard-on-Ubuntu.html Format : Markdown/HTML --- ![openStack Logo][1] This is a guide on installing the Openstack Horizon dashboard on Ubuntu 12.04 or 14.04, including SSL setup. It features nice screenshots and even an Ansible playbook to automate it all. We will set up the Icehouse version of Horizon. <p class="ad"> <b>Recently I removed all Google Ads from this site due to their invasive tracking, as well as Google Analytics. Please, if you found this content useful, consider a small donation using any of the options below:</b><br><br> <a href="https://leafnode.nl">I'm developing an open source monitoring app called Leaf Node Monitoring, for windows, linux & android. Go check it out!</a><br><br> <a href="https://github.com/sponsors/RaymiiOrg/">Consider sponsoring me on Github. It means the world to me if you show your appreciation and you'll help pay the server costs.</a><br><br> <a href="https://www.digitalocean.com/?refcode=7435ae6b8212">You can also sponsor me by getting a Digital Ocean VPS. With this referral link you'll get $100 credit for 60 days. </a><br><br> </p> Openstack is one of those cloudy cloud projects. Warning, keep your buzzword bingo cards ready for the [Wikipedia][3] definition: OpenStack is a free and open-source software cloud computing platform. It is primarily deployed as an infrastructure as a service (IaaS) solution. The technology consists of a series of interrelated projects that control pools of processing, storage, and networking resources throughout a data center, able to be managed or provisioned through a web-based dashboard, command-line tools, or a RESTful API. It is released under the terms of the Apache License. This tutorial does not cover a full openstack cluster setup, just the Dashboard. In this tutorial my Dashboard talks to the [CloudVPS][4] Openstack service, change this for your own Openstack installation. You can see all my [Openstack related tutorials here][5]. For example, how to use [Duplicity to create Encrypted backups to the Openstack Swift Object Store][6]. ![openstack][7] ### Requirements * Ubuntu 12.04 or 14.04 machine * An Openstack cluster with at least: * compute (kvm) * keystone (identity) * glance (images) * cinder (block storage) * neutron/classic networking Just swift (object store) and keystone are also OK, just to manage Object storage. I'll be using the [CloudVPS][4] public Openstack cloud in this example. If you order a VPS or Objectstore at [CloudVPS][4], please mention my name or this article. I'll get a little referal bonus, which will be used to keep this awesome website running. Note that this article is not sponsored nor endorsed by [CloudVPS][4], nor am I speaking for or as [CloudVPS][4]. ### Install packages Because Ubuntu 14.04 has Cloudy Support (as in, Openstack Icehouse in the main repo) we can just install it. First update the system: apt-get update Then install the packages required: apt-get install -y apache2 memcached libapache2-mod-wsgi openstack-dashboard Remove the ubuntu dashboard theme, this prevents the network map, translations and some menu's from working: apt-get remove -y --purge openstack-dashboard-ubuntu-theme Here's a picture of Horizon with the Ubuntu theme: ![openstack][8] If you run 12.04 you should add the Icehouse Openstack repository first: apt-get install python-software-properties add-apt-repository cloud-archive:icehouse apt-get update If you only want the dashboard you don't need the backported kernel on 12.04. Otherwise, install the following extra packages: `linux-image-generic-lts-saucy linux-headers-generic-lts-saucy` and reboot. ### Configure Apache Make sure the Horizon dashboard config is enabled: a2enconf openstack-dashboard On 12.04 this is not needed. The config is already enabled there in `/etc/apache2/conf.d/`. Enable HTTPS: a2ensite default-ssl a2enmod ssl If you want to redirect all traffic from HTTP to HTTPS, which you should, enable `mod_rewrite`: a2enmod rewrite Edit `/etc/apache2/sites-enabled/000-default.conf`: vim /etc/apache2/sites-enabled/000-default.conf On 12.04 the file is named without `.conf`: vim /etc/apache2/sites-enabled/000-default And add the following: RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} Somewhere in the `<Virtualhost>` part. Make sure to set up a correct certificate if you are going to run HTTPS in production. If you need tips to [Set up strong SSL security on Apache, see my tutorial][9]. Don't forget to restart Apache: service apache2 restart ### Configure Horizon Edit the dashboard config: vim /etc/openstack-dashboard/local_settings.py Add the following if you are using SSL: CSRF_COOKIE_SECURE = True SESSION_COOKIE_SECURE = True USE_SSL = True Configure the Openstack host by setting the following variables: OPENSTACK_HOST = "127.0.0.1" OPENSTACK_KEYSTONE_URL = "http://%s:5000/v2.0" % OPENSTACK_HOST OPENSTACK_KEYSTONE_DEFAULT_ROLE = "_member_" I'm using [CloudVPS][4]'s Openstack service, so for me the variables are like this: OPENSTACK_KEYSTONE_URL = "https://identity.stack.cloudvps.com/v2.0" Thats it. Visit the Dasboard at `http://$IPADDRESS/horizon` and login. Here's another screenshot showing the Swift (Object Storage) part of Horizon: ![openstack][10] ### Ansible Playbook I've also written an simple Ansible playbook to install a Horizon instance. You can find it in this [Github repository.][11] [1]: https://raymii.org/s/inc/img/openstack.jpg [2]: https://www.digitalocean.com/?refcode=7435ae6b8212 [3]: https://en.wikipedia.org/wiki/OpenStack [4]: https://cloudvps.com [5]: https://raymii.org/s/tags/openstack.html [6]: https://raymii.org/s/tutorials/Encrypted_Duplicity_Backups_to_Openstack_Swift_Objectstore.html [7]: https://raymii.org/s/inc/img/horizon-openstack-theme.png [8]: https://raymii.org/s/inc/img/horizon-icehouse-ubuntu.png [9]: https://raymii.org/s/tutorials/Strong_SSL_Security_On_Apache2.html [10]: https://raymii.org/s/inc/img/horizon-containers.png [11]: https://github.com/RaymiiOrg/ansible-openstack-horizon-dashboard --- License: All the text on this website is free as in freedom unless stated otherwise. This means you can use it in any way you want, you can copy it, change it the way you like and republish it, as long as you release the (modified) content under the same license to give others the same freedoms you've got and place my name and a link to this site with the article as source. This site uses Google Analytics for statistics and Google Adwords for advertisements. You are tracked and Google knows everything about you. Use an adblocker like ublock-origin if you don't want it. All the code on this website is licensed under the GNU GPL v3 license unless already licensed under a license which does not allows this form of licensing or if another license is stated on that page / in that software: This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. Just to be clear, the information on this website is for meant for educational purposes and you use it at your own risk. I do not take responsibility if you screw something up. Use common sense, do not 'rm -rf /' as root for example. If you have any questions then do not hesitate to contact me. See https://raymii.org/s/static/About.html for details.