3b2c7ad457
Within the multi-node-aio-xenial-ansible folder the multi-node-aio content has been copied over, Cobbler and Trusty specific parts have been removed. The intent here is to replace much of the bash which is present with Ansible and not support Trusty. To do this a clean separate folder is required so large changes which are made will not affect the current working Trusty based install. Change-Id: Ib64ee168ece4b7a00f950c8d5b1cd6dd4dcd7ba7
176 lines
6.5 KiB
Bash
176 lines
6.5 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Load service variables
|
|
source openrc
|
|
|
|
# bring in variable definitions if there is a variables.sh file
|
|
[[ -f variables.sh ]] && source variables.sh
|
|
|
|
# Provide defaults for unset variables
|
|
# Set first two octets of network used for containers, storage, etc
|
|
NETWORK_BASE=${NETWORK_BASE:-172.29}
|
|
|
|
# Create base flavors for the new deployment
|
|
for flavor in micro tiny mini small medium large xlarge heavy; do
|
|
NAME="m1.${flavor}"
|
|
ID="${ID:-0}"
|
|
RAM="${RAM:-256}"
|
|
DISK="${DISK:-1}"
|
|
VCPU="${VCPU:-1}"
|
|
SWAP="${SWAP:-0}"
|
|
EPHEMERAL="${EPHEMERAL:-0}"
|
|
nova flavor-delete $ID > /dev/null || echo "No Flavor with ID: [ $ID ] found to clean up"
|
|
nova flavor-create $NAME $ID $RAM $DISK $VCPU --swap $SWAP --is-public true --ephemeral $EPHEMERAL --rxtx-factor 1
|
|
let ID=ID+1
|
|
let RAM=RAM*2
|
|
if [ "$ID" -gt 5 ];then
|
|
let VCPU=VCPU*2
|
|
let DISK=DISK*2
|
|
let EPHEMERAL=256
|
|
let SWAP=4
|
|
elif [ "$ID" -gt 4 ];then
|
|
let VCPU=VCPU*2
|
|
let DISK=DISK*4+$DISK
|
|
let EPHEMERAL=$DISK/2
|
|
let SWAP=4
|
|
elif [ "$ID" -gt 3 ];then
|
|
let VCPU=VCPU*2
|
|
let DISK=DISK*4+$DISK
|
|
let EPHEMERAL=$DISK/3
|
|
let SWAP=4
|
|
elif [ "$ID" -gt 2 ];then
|
|
let VCPU=VCPU+$VCPU/2
|
|
let DISK=DISK*4
|
|
let EPHEMERAL=$DISK/3
|
|
let SWAP=4
|
|
elif [ "$ID" -gt 1 ];then
|
|
let VCPU=VCPU+1
|
|
let DISK=DISK*2+$DISK
|
|
fi
|
|
done
|
|
|
|
# Neutron provider network setup
|
|
neutron net-create GATEWAY_NET \
|
|
--router:external=True \
|
|
--provider:physical_network=flat \
|
|
--provider:network_type=flat
|
|
|
|
neutron subnet-create GATEWAY_NET ${NETWORK_BASE}.248.0/22 \
|
|
--name GATEWAY_NET_SUBNET \
|
|
--gateway ${NETWORK_BASE}.248.1 \
|
|
--allocation-pool start=${NETWORK_BASE}.248.201,end=${NETWORK_BASE}.248.255 \
|
|
--dns-nameservers list=true ${DNS_NAMESERVER}
|
|
|
|
# Neutron private network setup
|
|
neutron net-create PRIVATE_NET \
|
|
--shared \
|
|
--router:external=True \
|
|
--provider:network_type=vxlan \
|
|
--provider:segmentation_id 101
|
|
|
|
neutron subnet-create PRIVATE_NET 192.168.0.0/24 \
|
|
--name PRIVATE_NET_SUBNET
|
|
|
|
# Neutron router setup
|
|
ROUTER_ID=$(neutron router-create GATEWAY_NET_ROUTER | grep -w id | awk '{print $4}')
|
|
neutron router-gateway-set \
|
|
${ROUTER_ID} \
|
|
$(neutron net-list | awk '/GATEWAY_NET/ {print $2}')
|
|
|
|
neutron router-interface-add \
|
|
${ROUTER_ID} \
|
|
$(neutron subnet-list | awk '/PRIVATE_NET_SUBNET/ {print $2}')
|
|
|
|
# Neutron security group setup
|
|
for id in $(neutron security-group-list -f yaml | awk '/- id\:/ {print $3}'); do
|
|
# Allow ICMP
|
|
neutron security-group-rule-create --protocol icmp \
|
|
--direction ingress \
|
|
$id || true
|
|
# Allow all TCP
|
|
neutron security-group-rule-create --protocol tcp \
|
|
--port-range-min 1 \
|
|
--port-range-max 65535 \
|
|
--direction ingress \
|
|
$id || true
|
|
# Allow all UDP
|
|
neutron security-group-rule-create --protocol udp \
|
|
--port-range-min 1 \
|
|
--port-range-max 65535 -\
|
|
-direction ingress \
|
|
$id || true
|
|
done
|
|
|
|
# Create some default images
|
|
wget http://uec-images.ubuntu.com/releases/14.04/release/ubuntu-14.04-server-cloudimg-amd64-disk1.img
|
|
glance image-create --name 'Ubuntu 14.04 LTS' \
|
|
--container-format bare \
|
|
--disk-format qcow2 \
|
|
--visibility public \
|
|
--progress \
|
|
--file ubuntu-14.04-server-cloudimg-amd64-disk1.img
|
|
rm ubuntu-14.04-server-cloudimg-amd64-disk1.img
|
|
|
|
wget http://uec-images.ubuntu.com/releases/16.04/release/ubuntu-16.04-server-cloudimg-amd64-disk1.img
|
|
glance image-create --name 'Ubuntu 16.04' \
|
|
--container-format bare \
|
|
--disk-format qcow2 \
|
|
--visibility public \
|
|
--progress \
|
|
--file ubuntu-16.04-server-cloudimg-amd64-disk1.img
|
|
rm ubuntu-16.04-server-cloudimg-amd64-disk1.img
|
|
|
|
wget http://dfw.mirror.rackspace.com/fedora/releases/24/CloudImages/x86_64/images/Fedora-Cloud-Base-24-1.2.x86_64.qcow2
|
|
glance image-create --name 'Fedora 24' \
|
|
--container-format bare \
|
|
--disk-format qcow2 \
|
|
--visibility public \
|
|
--progress \
|
|
--file Fedora-Cloud-Base-24-1.2.x86_64.qcow2
|
|
rm Fedora-Cloud-Base-24-1.2.x86_64.qcow2
|
|
|
|
wget http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2
|
|
glance image-create --name 'CentOS 7' \
|
|
--container-format bare \
|
|
--disk-format qcow2 \
|
|
--visibility public \
|
|
--progress \
|
|
--file CentOS-7-x86_64-GenericCloud.qcow2
|
|
rm CentOS-7-x86_64-GenericCloud.qcow2
|
|
|
|
wget http://download.opensuse.org/repositories/Cloud:/Images:/Leap_42.1/images/openSUSE-Leap-42.1-OpenStack.x86_64-0.0.4-Build2.12.qcow2
|
|
glance image-create --name 'OpenSuse Leap 42' \
|
|
--container-format bare \
|
|
--disk-format qcow2 \
|
|
--visibility public \
|
|
--progress \
|
|
--file openSUSE-Leap-42.1-OpenStack.x86_64-0.0.4-Build2.12.qcow2
|
|
rm openSUSE-Leap-42.1-OpenStack.x86_64-0.0.4-Build2.12.qcow2
|
|
|
|
wget http://cdimage.debian.org/cdimage/openstack/current/debian-8.6.0-openstack-amd64.qcow2
|
|
glance image-create --name 'Debian 8.6.0' \
|
|
--container-format bare \
|
|
--disk-format qcow2 \
|
|
--visibility public \
|
|
--progress \
|
|
--file debian-8.6.0-openstack-amd64.qcow2
|
|
rm debian-8.6.0-openstack-amd64.qcow2
|
|
|
|
wget http://cdimage.debian.org/cdimage/openstack/testing/debian-testing-openstack-amd64.qcow2
|
|
glance image-create --name "Debian TESTING $(date +%m-%d-%y)" \
|
|
--container-format bare \
|
|
--disk-format qcow2 \
|
|
--visibility public \
|
|
--progress \
|
|
--file debian-testing-openstack-amd64.qcow2
|
|
rm debian-testing-openstack-amd64.qcow2
|
|
|
|
wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
|
|
glance image-create --name "Cirros-0.3.4" \
|
|
--container-format bare \
|
|
--disk-format qcow2 \
|
|
--visibility public \
|
|
--progress \
|
|
--file cirros-0.3.4-x86_64-disk.img
|
|
rm cirros-0.3.4-x86_64-disk.img
|