Jump to: navigation, search

Difference between revisions of "Horizon"

(Removing outdated and misleading information, pointing to Horizon's own docs to prevent bitrot from accumulating in this wiki page.)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
 
= [[OpenStack]] Dashboard ("Horizon") =
 
= [[OpenStack]] Dashboard ("Horizon") =
 +
 +
== What is Horizon ? ==
 +
 +
Horizon is the canonical implementation of Openstack’s Dashboard, which provides a web based user interface to [[OpenStack]] services including Nova, Swift, Keystone, etc. Please see [http://docs.openstack.org/developer/horizon/intro.html Introducing Horizon] for a thorough look at what Horizon is and what the aims of the project are.
 +
 +
== Resources ==
  
 
{| border="1" cellpadding="2" cellspacing="0"
 
{| border="1" cellpadding="2" cellspacing="0"
Line 9: Line 15:
 
|  Blueprints     
 
|  Blueprints     
 
|-
 
|-
Developer doc
+
Documentation
 +
|-
 +
|  Design
 
|}
 
|}
 
== Other resources ==
 
 
* [[Design|Design]] - Design documents
 
 
== What is Horizon ? ==
 
 
The OpenStack Dashboard (Horizon) provides a baseline user interface for managing OpenStack services. It is a reference implementation built using the django-openstack project which contains all of the core functionality needed to develop a site-specific implementation. This page provides step-by-step instructions for installing and running Dashboard.
 
  
 
== Requirements ==
 
== Requirements ==
  
* python 2.6 or 2.7 (not tested with python 3.0)
+
* Python 2.6 or 2.7 (not compatible with python 3.0).
* [http://git-scm.com/ git]
+
* A [https://launchpad.net/keystone Keystone] (identity and authentication service) endpoint.
* a [https://launchpad.net/keystone Keystone] (identity and authentication service) endpoint  
+
* A Compute ([[Nova|Nova]]) endpoint, with all compute services (API, scheduler, compute, network, etc.) running.
* a Compute ([[Nova|Nova]]) endpoint
+
* An Image Store ([[InstallInstructions/Glance|Glance]]) endpoint.
  
 
=== Optional ===
 
=== Optional ===
* an Image Store ([[InstallInstructions/Glance|Glance]]) endpoint
 
* an Object Store ([[Swift|Swift]]) endpoint
 
* a [[Quantum|Quantum]] (networking) endpoint
 
 
Horizon is tested on Ubuntu 10.10 server, however, it should run on any system with Python 2.6 or 2.7 that is capable of running Django including Mac OS X (installing prerequisites may differ depending on platform).
 
 
== Installation Overview ==
 
 
Installing Horizon involves four basic steps:
 
 
# get the source from Github
 
# configure
 
# install
 
# run
 
 
These instructions are for a '''development''' openstack-dashboard deployment. For production deployments consider using Apache (more instructions on the [https://docs.djangoproject.com/en/dev/howto/deployment/modpython/ Django website].
 
 
Note: When starting completely from scratch (i.e. no configured and running OpenStack installation with Nova, Glance, Keystone, etc.) the [[#devstack|DevStack]] project is a good way to get started.
 
 
== Get The Source ==
 
 
Execute the following in a terminal on the host you would like to install Horizon on:
 
 
 
<pre><nowiki>
 
$ git clone  https://github.com/openstack/horizon
 
</nowiki></pre>
 
 
 
You should now have a directory called openstack-dashboard, which contains the Horizon application.
 
 
== Configure Horizon ==
 
 
With the reference implementation built, it is now time to configure our Horizon application. The first step in configuring the application is to create your local_settings.py file:
 
 
 
<pre><nowiki>
 
$ cd horizon/openstack-dashboard
 
$ cp local/local_settings.py.example local/local_settings.py
 
</nowiki></pre>
 
 
 
The local_settings.py file contains a default starting point for running Horizon. There are three key sections of the local_settings.py file that need to be edited for most deployments.
 
 
=== Keystone Configuration ===
 
 
Horizon requires a Keystone endpoint for identity and authentication. The settings in local_settings.py pertaining to Keystone are:
 
 
# OPENSTACK_ADMIN_TOKEN (a pre-configured Keystone admin token)
 
# OPENSTACK_KEYSTONE_URL (the Keystone endpoint URL)
 
 
General instructions for Installing the latest Keystone can be found on [https://github.com/openstack/keystone Github]. For a good all-in-one Nova/Glance/Keystone installation there is the [https://github.com/cloudbuilders/devstack devstack] project.
 
 
The admin token can be generated by executing something like the following using the keystone-manage command on the Keystone host:
 
 
 
<pre><nowiki>
 
keystone-manage token add 999888777666 admin admin 2015-02-05T00:00
 
</nowiki></pre>
 
 
 
To use this token you would add the following to local_settings.py:
 
 
 
<pre><nowiki>
 
OPENSTACK_ADMIN_TOKEN = "999888777666"
 
</nowiki></pre>
 
 
 
The Keystone endpoint setting takes the following form:
 
 
 
<pre><nowiki>
 
OPENSTACK_KEYSTONE_URL = "http://mykeystoneurl:5000/v2.0/"
 
</nowiki></pre>
 
 
 
=== Swift Configuration (optional) ===
 
 
If a Swift endpoint is available and configured in the Keystone service catalog turning on the Swift UI is as simple as adding the following to local_settings.py:
 
 
 
<pre><nowiki>
 
SWIFT_ENABLED = True
 
</nowiki></pre>
 
 
 
=== Quantum Configuration (optional) ===
 
 
Quantum currently requires the following settings:
 
 
 
<pre><nowiki>
 
QUANTUM_ENABLED = True
 
QUANTUM_URL = '127.0.0.1'
 
QUANTUM_PORT = '9696'
 
QUANTUM_TENANT = '1234'
 
QUANTUM_CLIENT_VERSION='0.1'
 
</nowiki></pre>
 
 
 
== Install Horizon ==
 
 
=== Install Virtual Environment ===
 
 
After Horizon has been configured install the Horizon virtual environment using the terminal commands below:
 
 
Note: the instructions below are for Ubuntu, however, setuptools can be installed on a wide variety of platforms: http://pypi.python.org/pypi/setuptools
 
 
 
<pre><nowiki>
 
$ apt-get install -y python-setuptools python-dev
 
$ sudo easy_install virtualenv
 
$ python tools/install_venv.py
 
</nowiki></pre>
 
 
 
Installing the virtual environment will take some time depending on download speeds.
 
 
=== Initialize Database Schema ===
 
 
Horizon session data is stored in the database specified in local_settings.py (SQLite by default). After the virtual environment has been installed run the following command to update the database schema to store session information:
 
 
 
<pre><nowiki>
 
$ tools/with_venv.sh dashboard/manage.py syncdb
 
</nowiki></pre>
 
 
 
== Run Horizon ==
 
 
Horizon is launched using the standard Django manage.py script from the context of the virtual environment:
 
 
 
<pre><nowiki>
 
$ tools/with_venv.sh dashboard/manage.py runserver 0.0.0.0:8000
 
</nowiki></pre>
 
 
 
At this point the Horizon should be available at http://dashboardhost:8000/.
 
 
<span id="devstack"></span>
 
== [[DevStack]] Optional All-In-One Developer Install ==
 
 
The [http://devstack.org/ DevStack] project is an all-in-one shell script that creates a functional development environment for OpenStack. The DevStack script will install all of the services necessary to provide a functioning development environment, including Horizon, which drastically simplifies the installation and configuration of core components like Nova, Glance, Keystone, etc. This is the best option when starting from a blank slate (i.e. no currently configured and running end-points for Nova, Glance, Keystone, etc.).
 
 
== Optional Step: Configure VNC ==
 
 
Note: Tested only with KVM but should work with other hypervisors.
 
 
In the same /src directory as your Horizon is housed, get a copy of noVNC.
 
 
 
<pre><nowiki>
 
cd ~/src
 
git clone https://github.com/openstack/noVNC.git
 
</nowiki></pre>
 
 
 
Next, run the vncproxy by creating a new screen window with <ctrl>-a <ctrl>-c.
 
 
You should run vncproxy with a pointer to the flag file as well:
 
 
 
<pre><nowiki>
 
bin/nova-vncproxy --vncproxy_wwwroot ~/src/noVNC --flagfile=/path/to/flagfile
 
</nowiki></pre>
 
 
 
To your nova.conf, you also need to add the flag: --vncproxy_url=http://<ip of vnc proxy>:6080
 
 
Now your VNC button should launch a VNC window so that you can access the instance.
 
 
= Video Demos =
 
  
'''Note''': These videos are out-of-date and do not reflect the latest Horizon implementation.
+
* An Object Store ([[Swift|Swift]]) endpoint.
 +
* A [[Quantum|Quantum]] (networking) endpoint.
  
To view a quick video tour of Horizon in action, please see this [http://blog.rabbityard.com/post/2937203639/openstack-dashboard-video blog post].
+
== Getting Started ==
  
You can also view a more recent demo at http://vimeo.com/20787736.
+
Please see the [http://docs.openstack.org/developer/horizon/quickstart.html Horizon Quickstart Guide] and [http://docs.openstack.org/developer/horizon/topics/deployment.html Horizon Deployment Configuration Guide] for the latest information on obtaining the code, creating a local settings file, running a development server, and considerations for a live deployment.

Revision as of 19:47, 23 January 2013

OpenStack Dashboard ("Horizon")

What is Horizon ?

Horizon is the canonical implementation of Openstack’s Dashboard, which provides a web based user interface to OpenStack services including Nova, Swift, Keystone, etc. Please see Introducing Horizon for a thorough look at what Horizon is and what the aims of the project are.

Resources

Source code
Bug tracker
Blueprints
Documentation
Design

Requirements

  • Python 2.6 or 2.7 (not compatible with python 3.0).
  • A Keystone (identity and authentication service) endpoint.
  • A Compute (Nova) endpoint, with all compute services (API, scheduler, compute, network, etc.) running.
  • An Image Store (Glance) endpoint.

Optional

  • An Object Store (Swift) endpoint.
  • A Quantum (networking) endpoint.

Getting Started

Please see the Horizon Quickstart Guide and Horizon Deployment Configuration Guide for the latest information on obtaining the code, creating a local settings file, running a development server, and considerations for a live deployment.