
This changeset contains updates for Newton. Notable changes include: - Ubuntu 14.04 LTS (trusty) replaced by Ubuntu 16.04 LTS (xenial) - Higher RAM requirements, the controller VM needs 5120 MB - Script order changed (install-guide changes) - By default, mariadb does not use a root password but socket auth (sudo) - Nova does not configure any default flavors anymore; we create m1.nano and that's all there is when the cluster is built. - Remaining differences to install-guide marked in the source code - As always, new races fixed Change-Id: Id59e145140252c4384584a3899e01a38e8a57158
115 lines
4.1 KiB
Bash
Executable File
115 lines
4.1 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.sh"
|
|
|
|
exec_logfile
|
|
|
|
indicate_current_auto
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Set up OpenStack Dashboard (horizon)
|
|
# http://docs.openstack.org/newton/install-guide-ubuntu/horizon-install.html
|
|
#------------------------------------------------------------------------------
|
|
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
# Install and configure components
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
# Note: Installing the dashboard here reloads the apache configuration.
|
|
# Below, we are also changing the configuration and reloading it once we
|
|
# are done. This race can result in a stopped apache (which also means
|
|
# stopped keystone services). We can either sleep for a second
|
|
# after the "apt-get install" call below or do a restart instead
|
|
# of a reload when we are done changing the configuration files.
|
|
echo "Installing horizon."
|
|
sudo apt-get install -y openstack-dashboard
|
|
|
|
# Edit the /etc/openstack-dashboard/local_settings.py file.
|
|
conf=/etc/openstack-dashboard/local_settings.py
|
|
auth_host=controller
|
|
|
|
echo "Setting OPENSTACK_HOST = \"$auth_host\"."
|
|
iniset_sudo_no_section $conf "OPENSTACK_HOST" "\"$auth_host\""
|
|
|
|
echo "Allowing all hosts to access the dashboard:"
|
|
iniset_sudo_no_section $conf "ALLOWED_HOSTS" "['*', ]"
|
|
|
|
echo "Telling horizon to use the cache for sessions."
|
|
iniset_sudo_no_section $conf "SESSION_ENGINE" "'django.contrib.sessions.backends.cache'"
|
|
|
|
echo "Setting interface location of memcached."
|
|
sudo sed -i "/LOCATION/ s/127.0.0.1/controller/" $conf
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
echo "Comparing $conf to memcached.conf."
|
|
memcached_conf=/etc/memcached.conf
|
|
# Port is a number on line starting with "-p "
|
|
port=$(grep -Po -- '(?<=^-p )\d+' $memcached_conf)
|
|
|
|
# Interface is an IP address on line starting with "-l "
|
|
interface_ip=$(grep -Po -- '(?<=^-l )[\d\.]+' $memcached_conf)
|
|
|
|
echo "memcached listening on $interface_ip:$port."
|
|
|
|
# Turn IP address into corresponding host name
|
|
interface_name=$(getent hosts "$auth_host" | awk '{ print $2 }')
|
|
|
|
# Line should read something like: 'LOCATION' : 'controller:11211',
|
|
if grep "LOCATION.*$interface_name:$port" $conf; then
|
|
echo "$conf agrees."
|
|
else
|
|
echo >&2 "$conf disagrees. Aborting."
|
|
exit 1
|
|
fi
|
|
|
|
echo "CACHES configuration in $conf:"
|
|
awk '/^CACHES =/,/^}/' $conf
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
echo "Enabling Identity API version 3."
|
|
iniset_sudo_no_section $conf "OPENSTACK_KEYSTONE_URL" '"http://%s:5000/v3" % OPENSTACK_HOST'
|
|
|
|
echo "Enabling support for domains."
|
|
iniset_sudo_no_section $conf "OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT" True
|
|
|
|
cat << API | sudo tee -a $conf
|
|
|
|
# Use Keystone V3 API for dashboard login.
|
|
OPENSTACK_API_VERSIONS = {
|
|
"identity": 3,
|
|
"image": 2,
|
|
"volume": 2,
|
|
}
|
|
API
|
|
|
|
echo "Configuring 'default' as the default domain for users created via " \
|
|
"dashboard."
|
|
iniset_sudo_no_section $conf "OPENSTACK_KEYSTONE_DEFAULT_DOMAIN" '"default"'
|
|
|
|
echo "Configuring 'user' as the default role for users created via dashboard."
|
|
iniset_sudo_no_section $conf "OPENSTACK_KEYSTONE_DEFAULT_ROLE" '"user"'
|
|
|
|
# Here, we would disable layer-3 networking servies for networking option 1.
|
|
|
|
echo "Setting timezone to UTC."
|
|
iniset_sudo_no_section $conf "TIME_ZONE" '"UTC"'
|
|
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
# Customize Horizon (not in install-guide)
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
echo "Removing default Ubuntu theme."
|
|
sudo apt-get remove --auto-remove -y openstack-dashboard-ubuntu-theme
|
|
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
# Finalize installation
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
echo "Reloading the web server configuration."
|
|
# Restarting instead of reloading for reasons explained in comment above.
|
|
sudo service apache2 restart
|