Jump to: navigation, search

Difference between revisions of "Horizon"

(Development)
 
(24 intermediate revisions by 13 users not shown)
Line 1: Line 1:
__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"
| Source code  
+
| [https://github.com/openstack/horizon Source code]
 +
|-
 +
| [https://bugs.launchpad.net/horizon Bug tracker]
 
|-
 
|-
| Bug tracker 
+
| [https://blueprints.launchpad.net/horizon Blueprints]
 
|-
 
|-
| Blueprints   
+
| [http://docs.openstack.org/developer/horizon/ Documentation]
 
|-
 
|-
Developer doc
+
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]
+
* An identity and authentication service endpoint: [[Keystone|Keystone]]
* a [https://launchpad.net/keystone Keystone] (identity and authentication service) endpoint  
+
* A Compute endpoint, with all compute services (API, scheduler, compute, network, etc.) running: [[Nova|Nova]]
* a Compute ([[Nova|Nova]]) endpoint
+
* An Image Store endpoint: [[Glance|Glance]]
  
 
=== 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.
+
* An Object Store endpoint: [[Swift|Swift]]
 +
* A networking endpoint: [[Neutron|Neutron]]
  
  
<pre><nowiki>
+
Other optional components: Orchestration ([[Heat]]), Metering ([[Telemetry]]), Database ([[Trove]]), Data processing ([[Sahara]]). As a rule Horizon aim to provide out-of-the-box support for the other integrated projects.
cd ~/src
 
git clone https://github.com/openstack/noVNC.git
 
</nowiki></pre>
 
  
 +
=== Browser Support ===
  
Next, run the vncproxy by creating a new screen window with <ctrl>-a <ctrl>-c.
+
The list of supported browsers is informally documented on the [[Horizon/BrowserSupport|Browser Support wiki page]]. Feel free to add to it with information on the browser(s) you've been testing Horizon with!
  
You should run vncproxy with a pointer to the flag file as well:
+
== Getting Started ==
  
 +
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.
  
<pre><nowiki>
+
== Development ==
bin/nova-vncproxy --vncproxy_wwwroot ~/src/noVNC --flagfile=/path/to/flagfile
 
</nowiki></pre>
 
  
 +
* [[Horizon/Reviews|Reviews]]
 +
* [[Horizon/BugTriage]]
 +
* [http://etherpad.openstack.org/p/horizon-integration-tests Integration tests coverage]
 +
* [[Bug_Tags#Horizon|Bug Tagging]]
 +
* [[Horizon/Javascript|JavaScript Guidelines]]
 +
* [[Horizon/RESTAPI|REST API]]
 +
* [[Horizon/WeeklyBugReport | Weekly Bug Report]]
  
To your nova.conf, you also need to add the flag: --vncproxy_url=http://<ip of vnc proxy>:6080
+
== Meeting ==
  
Now your VNC button should launch a VNC window so that you can access the instance.
+
* [[Meetings#Horizon_team_meeting]]
 +
* [[Meetings/Horizon]]
  
= Video Demos =
+
== Blueprints ==
  
'''Note''': These videos are out-of-date and do not reflect the latest Horizon implementation.
+
* [[Horizon/Blueprint Reviews]]
  
To view a quick video tour of Horizon in action, please see this [http://blog.rabbityard.com/post/2937203639/openstack-dashboard-video blog post].
+
== Wish List ==
  
You can also view a more recent demo at http://vimeo.com/20787736.
+
The [[Horizon/Wish List|wish list]] contains feature ideas not ready to be blueprints. For more information see the wish list.

Latest revision as of 13:13, 26 January 2016

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).
  • An identity and authentication service endpoint: Keystone
  • A Compute endpoint, with all compute services (API, scheduler, compute, network, etc.) running: Nova
  • An Image Store endpoint: Glance

Optional

  • An Object Store endpoint: Swift
  • A networking endpoint: Neutron


Other optional components: Orchestration (Heat), Metering (Telemetry), Database (Trove), Data processing (Sahara). As a rule Horizon aim to provide out-of-the-box support for the other integrated projects.

Browser Support

The list of supported browsers is informally documented on the Browser Support wiki page. Feel free to add to it with information on the browser(s) you've been testing Horizon with!

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.

Development

Meeting

Blueprints

Wish List

The wish list contains feature ideas not ready to be blueprints. For more information see the wish list.