VScaler: CIX Controller Node OpenStack Installation - Horizon

From Define Wiki
Jump to navigation Jump to search

Horizon Dashboard Service

  • 15_vscaler-controller-horizon-dashboard.sh
#!/bin/bash

# Source env variables
source vscaler-env.sh

# Install OpenStack Horizon Dashboard
yum install openstack-dashboard -y

# Change settings in /etc/openstack-dasboard/local_settings
sed -i 's/OPENSTACK_HOST = "127.0.0.1"/OPENSTACK_HOST = "controller"/g' /etc/openstack-dashboard/local_settings
sed -i "s/ALLOWED_HOSTS = \['horizon.example.com', 'localhost'\]/ALLOWED_HOSTS = \['*',\]/g" /etc/openstack-dashboard/local_settings
sed -i "s/'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',/'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', \n\t 'LOCATION': '127.0.0.1:11211', /g" /etc/openstack-dashboard/local_settings
sed -i 's/OPENSTACK_KEYSTONE_DEFAULT_ROLE = "_member_"/OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"/g' /etc/openstack-dashboard/local_settings
sed -i 's/#OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = False/OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True/g' /etc/openstack-dashboard/local_settings

# sed -i "s/#OPENSTACK_API_VERSIONS = {/OPENSTACK_API_VERSIONS = { \n\t\"identity\": 3, \n\t\"volume\": 2, \n\t } \n/g" /etc/openstack-dashboard/local_settings
# seems a bug with using id v3 so moved to v2 to get passed - it was saying unknown service compute despite being defined with endpoints. might need to review to sort, should be v3, maybe endpoints needs to be defined as v3? check https://wiki.ncsa.illinois.edu/display/ITS/Changing+from+APIv2.0+to+APIv3+in+Keystone+-+Openstack+Juno+on+Ubuntu

sed -i "s/#OPENSTACK_API_VERSIONS = {/OPENSTACK_API_VERSIONS = { \n\t\"identity\": 2.0, \n\t\"volume\": 2, \n\t } \n/g" /etc/openstack-dashboard/local_settings

# Enable and restart services
systemctl enable httpd.service memcached.service
systemctl restart httpd.service memcached.service

# Increase the maximum number of MYSQL connections
sed -i '1 a open_files_limit = 8192' /etc/my.cnf
sed -i '2 a max_connections = 1024' /etc/my.cnf

# Restart mariadb
systemctl restart mariadb

Add vScaler theme

  • Extract vScaler theme files to /root:
[root@controller01 ~]# tar zxvf vscaler_dashboard.tar.gz 
vscaler_dashboard/
vscaler_dashboard/vscaler_dashboard.tgz
vscaler_dashboard/usr/
vscaler_dashboard/usr/share/
vscaler_dashboard/usr/share/openstack-dashboard/
vscaler_dashboard/usr/share/openstack-dashboard/static/
vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/
vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/css/
vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/css/custom_vscaler.css
vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/img/
vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/img/vscaler.png
vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/img/vscaler_sml-bt.png
vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/img/vscaler_sml.png
vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/img/vscaler_sml-wt.png
vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/img/clouds2.jpg
vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/img/clouds3.jpg
vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/img/clouds.jpg
  • Locate _stylesheets.html:
[root@controller01 ~]# locate _stylesheets.html
/usr/share/openstack-dashboard/openstack_dashboard/templates/_stylesheets.html
  • Edit _stylesheets.html to include vScaler custom stuff:
[root@controller01 ~]# tail -n 6 /usr/share/openstack-dashboard/openstack_dashboard/templates/_stylesheets.html
{% endcompress %}

<link href='/vscaler/css/custom_vscaler.css' media='screen' rel='stylesheet' />
<link href='https://fonts.googleapis.com/css?family=Raleway' rel='stylesheet' type='text/css' />

<link rel="shortcut icon" href="{{ STATIC_URL }}dashboard/img/favicon.ico"/>
  • Create a vscaler directory in /usr/share/openstack-dashboard/openstack_dashboard/:
[root@controller01 ~]# cd /usr/share/openstack-dashboard/openstack_dashboard/
[root@controller01 openstack_dashboard]# mkdir vscaler
  • And copy over css and img files:
[root@controller01 openstack_dashboard]# cp -rvf ~/vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/css/ ./vscaler/
‘/root/vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/css/’ -> ‘./vscaler/css’
‘/root/vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/css/custom_vscaler.css’ -> ‘./vscaler/css/custom_vscaler.css’

[root@controller01 openstack_dashboard]# cp -rvf ~/vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/img/ ./vscaler/
‘/root/vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/img/’ -> ‘./vscaler/img’
‘/root/vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/img/vscaler_sml-wt.png’ -> ‘./vscaler/img/vscaler_sml-wt.png’
‘/root/vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/img/clouds2.jpg’ -> ‘./vscaler/img/clouds2.jpg’
‘/root/vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/img/vscaler_sml-bt.png’ -> ‘./vscaler/img/vscaler_sml-bt.png’
‘/root/vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/img/vscaler_sml.png’ -> ‘./vscaler/img/vscaler_sml.png’
‘/root/vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/img/clouds.jpg’ -> ‘./vscaler/img/clouds.jpg’
‘/root/vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/img/vscaler.png’ -> ‘./vscaler/img/vscaler.png’
‘/root/vscaler_dashboard/usr/share/openstack-dashboard/static/dashboard/img/clouds3.jpg’ -> ‘./vscaler/img/clouds3.jpg’
  • Check that files did indeed copy over:
[root@controller01 openstack_dashboard]# cd vscaler/
[root@controller01 vscaler]# pwd
/usr/share/openstack-dashboard/openstack_dashboard/vscaler
[root@controller01 vscaler]# find .
.
./css
./css/custom_vscaler.css
./img
./img/vscaler_sml-wt.png
./img/clouds2.jpg
./img/vscaler_sml-bt.png
./img/vscaler_sml.png
./img/clouds.jpg
./img/vscaler.png
./img/clouds3.jpg
  • Amend the /etc/http/conf.d/openstack-dashboard.conf file:
[root@controller01 vscaler]# cd /etc/httpd/
[root@controller01 httpd]# cat conf.d/openstack-dashboard.conf
WSGIDaemonProcess dashboard
WSGIProcessGroup dashboard
WSGISocketPrefix run/wsgi

WSGIScriptAlias /dashboard /usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi
Alias /dashboard/static /usr/share/openstack-dashboard/static
Alias /vscaler /usr/share/openstack-dashboard/openstack_dashboard/vscaler

<Directory /usr/share/openstack-dashboard/openstack_dashboard/wsgi>
  Options All
  AllowOverride All
  Require all granted
</Directory>

<Directory /usr/share/openstack-dashboard/static>
  Options All
  AllowOverride All
  Require all granted
</Directory>

<Directory /usr/share/openstack-dashboard/openstack_dashboard/vscaler>
  Options All
  AllowOverride All
  Require all granted
</Directory>
  • Disable MULTIDOMAIN from /etc/openstack-dashboard/local_settings:
[root@controller01 httpd]# grep MULTIDOMAIN /etc/openstack-dashboard/local_settings
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = False
  • Restart apache:
[root@controller01 httpd]# systemctl restart httpd

Problems

Horizon webUI errors out with 'Unable to retrieve project list', 'Unable to retrieve project list' and/or 'Could not find default role "user" in Keystone'

  • Turns out this was caused by the OPENSTACK_API_VERSION in /etc/openstack-dashboard/local_settings having identity set to 2 rather than 2.0.
  • The script above has been amended to account for this. The line in question is:
sed -i "s/#OPENSTACK_API_VERSIONS = {/OPENSTACK_API_VERSIONS = { \n\t\"identity\": 2.0, \n\t\"volume\": 2, \n\t } \n/g" /etc/openstack-dashboard/local_settings
  • Alternatively:
    • Edit /etc/openstack-dashboard/local_settings and amend the OPENSTACK_API_VERSION section, as follows:
OPENSTACK_API_VERSIONS = {
        "identity": 2.0,
        "volume": 2,
         }
    • And restart http.service:
[root@head openstack-dashboard]# systemctl restart httpd.service