Ask Your Question
0

problem with openstack dashboard installation in multinode deployment

asked 2012-11-13 22:46:28 -0500

paul-vinciguerra gravatar image

New to OpenStack, first install (Folsom) with seperate nodes for cloud controller and compute; keystone and dashboard both installed on cloud controller node. After following instructions from install/deploy manual for ubuntu (trunk 10/10/2012), and trying to validate, only the default web page for apache comes up ('it works') - no login for dashboard. Does the config file require database entry/config (local_settings.py) - have seen mixed information on this. Could there be endpoint definition problem (used cloud controller node IP for all service catalog endpoints).

edit retag flag offensive close merge delete

3 answers

Sort by ยป oldest newest most voted
0

answered 2012-11-14 11:13:33 -0500

Hi Paul

Can you try http://<your-address-or-name>/horizon ?

this bug can be related with your question - https://bugs.launchpad.net/ubuntu/+source/horizon/+bug/1020313 (https://bugs.launchpad.net/ubuntu/+so...) in my /etc/apache2/conf.d/openstack-dashboard.conf I have WSGIScriptAlias /horizon /usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi

and http://x.x.x.x/horizon - works for me

edit flag offensive delete link more
0

answered 2012-11-14 16:49:47 -0500

paul-vinciguerra gravatar image

Anton- Thanks for your quick response. I tried appending /horizon (and horizon/auth/login) - while it didnt work I did get a different message - internal server error. I verified that my settings in apache2/conf.d do match yours. My problem must be somewhere else. I have attached my local_settings.py for reference. Keystone, horizon, mysql, nova-api, nova-scheduler, rabbitmq all run on my cloud controller node (x.x.x.71 below); nova-compute, quantum and l2/dhcp/l3 agents run on seperate nodes. I used the IP of cloud controller node (.71) in defining all endpoints - not sure if that is correct.


import os

from django.utils.translation import ugettext_lazy as _

DEBUG = False TEMPLATE_DEBUG = DEBUG

added from devstack working example

PROD = False

added from devstack working example

USE_SSL = False

Set SSL proxy settings:

For Django 1.4+ pass this header from the proxy after terminating the SSL,

and don't forget to strip it from the client's request.

For more information see:

https://docs.djangoproject.com/en/1.4/ref/settings/#secure-proxy-ssl-header (https://docs.djangoproject.com/en/1.4...)

SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTOCOL', 'https')

Specify a regular expression to validate user passwords.

HORIZON_CONFIG = {

"password_validator": {

"regex": '.*',

"help_text": _("Your password does not meet the requirements.")

},

'help_url': "http://docs.openstack.org"

}

LOCAL_PATH = os.path.dirname(os.path.abspath(__file__))

adding database

SESSION_ENGINE = 'django.core.cache.backends.db.DatabaseCache' DATABASES = { 'default': { # Database configuration here 'ENGINE': 'django.db.backends.mysql', 'NAME': 'dash', 'USER': 'dash', 'PASSWORD': 'dash', 'HOST': 'localhost', 'default-character-set': 'utf8' } } #

Set custom secret key:

You can either set it to a specific value or you can let horizion generate a

default secret key that is unique on this machine, e.i. regardless of the

amount of Python WSGI workers (if used behind Apache+mod_wsgi): However, there

may be situations where you would want to set this explicitly, e.g. when

multiple dashboard instances are distributed on different machines (usually

behind a load-balancer). Either you have to make sure that a session gets all

requests routed to the same dashboard instance or you set the same SECRET_KEY

for all of them.

from horizon.utils import secret_key

SECRET_KEY = secret_key.generate_or_read_from_file(os.path.join(LOCAL_PATH, '.secret_key_store'))

We recommend you use memcached for development; otherwise after every reload

of the django development server, you will have to login again. To use

memcached set CACHE_BACKED to something like 'memcached://127.0.0.1:11211/'

note see pg 79/80 for how this is done differently - declare session engine

CACHE_BACKEND = 'memcached://127.0.0.1:11211'

Send email to the console by default

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

Or send them to /dev/null

#EMAIL_BACKEND = 'django.core.mail.backends.dummy.EmailBackend'

Configure these for your outgoing email host

EMAIL_HOST = 'smtp.my-company.com'

EMAIL_PORT = 25

EMAIL_HOST_USER = 'djangomail'

EMAIL_HOST_PASSWORD = 'top-secret!'

For multiple regions uncomment this configuration, and add (endpoint, title).

AVAILABLE_REGIONS = [

('http://cluster1.example.com:5000/v2.0', 'cluster1'),

('http://cluster2.example.com:5000/v2.0', 'cluster2'),

]

OPENSTACK_HOST = "X.X.X.71"

OPENSTACK_KEYSTONE_URL = "http://%s:5000/v2.0" % OPENSTACK_HOST

OPENSTACK_KEYSTONE_URL = "http ...

(more)
edit flag offensive delete link more
0

answered 2012-11-17 00:02:26 -0500

paul-vinciguerra gravatar image

This problem has been resolved. When launched Horizon going to var/www/dashboard, and should be going to to /usr/share/openstack-dashboard/openstack_dashboard/wsgi, created symlink and started working.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Get to know Ask OpenStack

Resources for moderators

Question Tools

1 follower

Stats

Asked: 2012-11-13 22:46:28 -0500

Seen: 131 times

Last updated: Nov 17 '12