openstack-ansible-ops/scripts/generate-networks.sh

75 lines
2.3 KiB
Bash

#!/usr/bin/env bash
# Copyright 2017, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
source openrc
# Create a basic flat network
openstack network create GATEWAY_NET \
--share \
--external \
--provider-physical-network flat \
--provider-network-type flat
openstack subnet create GATEWAY_SUBNET \
--subnet-range 172.16.24.0/22 \
--network GATEWAY_NET \
--gateway 172.16.24.2 \
--allocation-pool start=172.16.25.201,end=172.16.25.255 \
--dns-nameserver 172.16.24.2
# Create a basic VXLAN network
openstack network create PRIVATE_NET \
--share \
--provider-network-type vxlan \
--provider-segment 101
openstack subnet create PRIVATE_SUBNET \
--subnet-range 192.168.0.0/24 \
--network PRIVATE_NET
# Create a neutron router and wire it up to the GATEWAY_NET and PRIVATE_NET_SUBNET
ROUTER_ID="$(openstack router create GATEWAY_NET_ROUTER -c id | grep -w id | awk '{print $4}')"
openstack router set "${ROUTER_ID}" \
--external-gateway "$(openstack network list | awk '/GATEWAY_NET/ {print $2}')"
openstack router add subnet \
"${ROUTER_ID}" \
"$(openstack subnet list | awk '/PRIVATE_SUBNET/ {print $2}')"
# Neutron security group setup
SECGRP_ID="$(openstack security group create MNAIO_SECGRP -c id | grep -w id | awk '{print $4}')"
# Allow ICMP
openstack security group rule create --protocol icmp \
--ingress \
"$SECGRP_ID"
# Allow all TCP
openstack security group rule create --protocol tcp \
--ingress \
"$SECGRP_ID"
# Allow all UDP
openstack security group rule create --protocol udp \
--ingress \
"$SECGRP_ID"