018a07984a
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
91 lines
3.7 KiB
Bash
Executable File
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
|