|
|
(3 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
− | __NOTOC__
| |
− | = [[OpenStack]] Dashboard (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.
| + | <!-- #REDIRECT Horizon --> |
| + | == OpenStack Dashboard documentation == |
| | | |
− | == Requirements ==
| + | [http://docs.openstack.org/developer/horizon/ Horizon: The OpenStack Dashboard Project] |
− | | |
− | * python 2.6 or 2.7 (not tested with python 3.0)
| |
− | * [http://git-scm.com/ git]
| |
− | * a [https://launchpad.net/keystone Keystone] (identity and authentication service) endpoint
| |
− | * a Compute ([[Nova|Nova]]) endpoint
| |
− | | |
− | === 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.
| |
− | | |
− | To view a quick video tour of Horizon in action, please see this [http://blog.rabbityard.com/post/2937203639/openstack-dashboard-video blog post].
| |
− | | |
− | You can also view a more recent demo at http://vimeo.com/20787736.
| |