kolla-ansible/tools/init-runonce
Steven Dake 6efe57e9eb Remove compose from documenation
Receive several quickstart related questions every day.  Make a
first pass at cleaning up our documentation to point people
in the right direction.  While we are about it remove compose
related bits.  Anything in the compose directory will remain as
a reference implementation for how to implement the compose
files to work well with our container content.

Change-Id: I9e832e97ac2bacca8eab7e1bfbd82664d2b191b8
Closes-Bug: #1485163
Paritally-Implements: blueprint remove-config-internal
2015-08-17 11:34:36 -07:00

87 lines
3.6 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="neutron"
# 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.4/
IMAGE=cirros-0.3.4-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 --disk-format qcow2 --container-format bare --visibility public --progress --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
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_ID=$(openstack user list | awk '/admin/ {print $2}')
ADMIN_PROJECT_ID=$(openstack project list | awk '/admin/ {print $2}')
# 40 instances
nova quota-update --instances 40 $ADMIN_PROJECT_ID
nova quota-update --user $ADMIN_USER_ID --instances 40 $ADMIN_PROJECT_ID
# 40 cores
nova quota-update --cores 40 $ADMIN_PROJECT_ID
nova quota-update --user $ADMIN_USER_ID --cores 40 $ADMIN_PROJECT_ID
# 96GB ram
nova quota-update --ram 96000 $ADMIN_PROJECT_ID
nova quota-update --user $ADMIN_USER_ID --ram 96000 $ADMIN_PROJECT_ID