training-guides/labs/scripts/ubuntu/setup_horizon.sh
Roger Luethi 4807c9b342 labs: fix apache2 restart race
"sudo service apache2 restart" sometimes fails because apache is trying
to grab a resource that another process is still holding onto.

Stopping apache first and starting it afterwards seems to avoid that race.

Change-Id: I55bfa125246fbf960b100682a3f4698f8c1d7e09
2015-03-29 14:24:30 +02:00

60 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env bash
set -o errexit -o nounset
TOP_DIR=$(cd "$(dirname "$0")/.." && pwd)
source "$TOP_DIR/config/paths"
source "$LIB_DIR/functions.guest"
exec_logfile
indicate_current_auto
#------------------------------------------------------------------------------
# Set up OpenStack Dashboard (horizon)
# http://docs.openstack.org/juno/install-guide/install/apt/content/install_dashboard.html
#------------------------------------------------------------------------------
echo "Installing horizon."
sudo apt-get install -y openstack-dashboard apache2 libapache2-mod-wsgi \
memcached python-memcache
echo "Purging Ubuntu theme."
sudo dpkg --purge openstack-dashboard-ubuntu-theme
function check_dashboard_settings {
local dashboard_conf=/etc/openstack-dashboard/local_settings.py
local auth_host=controller-mgmt
echo "Setting OPENSTACK_HOST = \"$auth_host\"."
sudo sed -i "s#^\(OPENSTACK_HOST =\).*#\1 \"$auth_host\";#" $dashboard_conf
echo -n "Allowed hosts: "
grep "^ALLOWED_HOSTS" $dashboard_conf
local memcached_conf=/etc/memcached.conf
# Port is a number on line starting with "-p "
local port=$(grep -Po -- '(?<=^-p )\d+' $memcached_conf)
# Interface is an IP address on line starting with "-l "
local interface=$(grep -Po -- '(?<=^-l )[\d\.]+' $memcached_conf)
echo "memcached listening on $interface:$port."
# Line should read something like: 'LOCATION' : '127.0.0.1:11211',
if grep "LOCATION.*$interface:$port" $dashboard_conf; then
echo "$dashboard_conf agrees."
else
echo >&2 "$dashboard_conf disagrees. Aborting."
exit 1
fi
echo -n "Time zone setting: "
grep TIME_ZONE $dashboard_conf
}
echo "Checking dashboard configuration."
check_dashboard_settings
echo "Reloading apache and memcached service."
sudo service apache2 stop
sudo service apache2 start
sudo service memcached restart