kolla-ansible/tools/init-runonce
Paul Bourke 018a07984a Fix 'unsupported locale setting' errors in init-runonce
Keystone requires a valid LC_ALL environment variable to be set, if left
empty the following output is shown:

"""
$ tools/init-runonce
Downloading glance image.
Creating glance image.
[=============================>] 100%
<snip>
Configuring neutron.
unsupported locale setting
unsupported locale setting
unsupported locale setting
unsupported locale setting
unsupported locale setting
unsupported locale setting
unsupported locale setting
unsupported locale setting
unsupported locale setting
unsupported locale setting
unsupported locale setting
Could not find any suitable endpoint. Correct region?
<snip>
"""

A similar problem occurred in devstack
(https://bugs.launchpad.net/devstack/+bug/1249131), apply the same patch
they use to to sanitize language settings
(https://github.com/openstack-dev/devstack/blob/master/stack.sh#L27).

Closes-Bug: #1466548

Change-Id: I8e86a4466181d6dd1c1749915c1c43521af805b7
2015-06-19 16:10:47 +00:00

91 lines
3.7 KiB
Bash
Executable File

#!/bin/bash
#
# This script is meant to be run once after running start for the first
# time. This script downloads a cirros image and registers it. Then it
# configures networking and nova quotas to allow 40 m1.small instances
# to be created.
# Sanitize language settings to avoid commands bailing out
# with "unsupported locale setting" errors.
unset LANG
unset LANGUAGE
LC_ALL=C
export LC_ALL
# Move to top level directory
REAL_PATH=$(python -c "import os,sys;print os.path.realpath('$0')")
cd "$(dirname "$REAL_PATH")/.."
NETWORK_MANAGER=$(grep -sri NETWORK_MANAGER ./compose/openstack.env | cut -f2 -d'=')
if [[ -z "$NETWORK_MANAGER" ]]; then
echo 'No network manager defined in ./compose/openstack.env, defaulting to "neutron".'
NETWORK_MANAGER="neutron"
fi
# Test for credentials set
if [[ "${OS_USERNAME}" == "" ]]; then
echo "No Keystone credentials specified. Try running source openrc"
exit
fi
# Test to ensure configure script is run only once
if glance image-list | grep -q cirros; then
echo "This tool should only be run once per deployment."
exit
fi
echo Downloading glance image.
IMAGE_URL=http://download.cirros-cloud.net/0.3.3/
IMAGE=cirros-0.3.3-x86_64-disk.img
if ! [ -f "$IMAGE" ]; then
curl -L -o ./$IMAGE $IMAGE_URL/$IMAGE
fi
echo Creating glance image.
glance image-create --name cirros --progress --is-public false --disk-format qcow2 --container-format bare --file ./$IMAGE
if [[ "${NETWORK_MANAGER}" == "nova" ]] ; then
echo Configuring nova networking.
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
nova network-create vmnet --fixed-range-v4=10.0.0.0/24 --bridge=br100 --multi-host=T
else
echo Configuring neutron.
neutron net-create public1 --router:external --provider:physical_network physnet1 --provider:network_type flat
neutron subnet-create --name 1-subnet --disable-dhcp --allocation-pool start=10.0.2.150,end=10.0.2.199 public1 10.0.2.0/24 --gateway 10.0.2.1
neutron net-create demo-net --provider:network_type vxlan --provider:segmentation_id 10
neutron subnet-create demo-net 10.0.0.0/24 --name demo-subnet --gateway 10.0.0.1 --dns-nameservers list=true 8.8.8.8
neutron router-create demo-router
neutron router-interface-add demo-router demo-subnet
neutron router-gateway-set demo-router public1
# Sec Group Config
neutron security-group-rule-create default --direction ingress --ethertype IPv4 --protocol icmp --remote-ip-prefix 0.0.0.0/0
neutron security-group-rule-create default --direction ingress --ethertype IPv4 --protocol tcp --port-range-min 22 --port-range-max 22 --remote-ip-prefix 0.0.0.0/0
# Open heat-cfn so it can run on a different host
neutron security-group-rule-create default --direction ingress --ethertype IPv4 --protocol tcp --port-range-min 8000 --port-range-max 8000 --remote-ip-prefix 0.0.0.0/0
neutron security-group-rule-create default --direction ingress --ethertype IPv4 --protocol tcp --port-range-min 8080 --port-range-max 8080 --remote-ip-prefix 0.0.0.0/0
fi
if [ -r ~/.ssh/id_rsa.pub ]; then
echo Configuring nova public key and quotas.
nova keypair-add --pub-key ~/.ssh/id_rsa.pub mykey
fi
# Increase the quota to allow 40 m1.small instances to be created
# Get admin user and tenant IDs
ADMIN_USER=$(keystone user-list | awk '/admin/ {print $2}')
ADMIN_TENANT=$(keystone tenant-list | awk '/admin/ {print $2}')
# 40 instances
nova quota-update --instances 40 $ADMIN_TENANT
nova quota-update --user $ADMIN_USER --instances 40 $ADMIN_TENANT
# 40 cores
nova quota-update --cores 40 $ADMIN_TENANT
nova quota-update --user $ADMIN_USER --cores 40 $ADMIN_TENANT
# 96GB ram
nova quota-update --ram 96000 $ADMIN_TENANT
nova quota-update --user $ADMIN_USER --ram 96000 $ADMIN_TENANT