#!/usr/bin/env bash # Load service variables source openrc # 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 172.29.248.0/22 \ --name GATEWAY_NET_SUBNET \ --gateway 172.29.248.1 \ --allocation-pool start=172.29.248.201,end=172.29.248.255 \ --dns-nameservers list=true 8.8.4.4 8.8.8.8 # 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