Skip to content

Instantly share code, notes, and snippets.

@nuriel77
Last active January 17, 2017 14:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nuriel77/d8d03590d754a44691816ea85d6dd53c to your computer and use it in GitHub Desktop.
Save nuriel77/d8d03590d754a44691816ea85d6dd53c to your computer and use it in GitHub Desktop.
prepare overcloud virtual test environment
#!/bin/bash
set -x
set -e
source ~/overcloudrc
if ! test -f CentOS-7-x86_64-GenericCloud.qcow2;then
wget http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2.xz
unxz CentOS-7-x86_64-GenericCloud.qcow2.xz
fi
openstack image create --disk-format qcow2 \
--container-format bare \
--public --file CentOS-7-x86_64-GenericCloud.qcow2 \
centos7-image
neutron net-create ext_net --provider:network_type vlan \
--provider:physical_network=datacentre \
--router:external true \
--provider:segmentation_id 10
neutron subnet-create ext_net \
--allocation-pool start=10.0.0.230,end=10.0.0.250 \
--gateway 10.0.0.1 \
--dns-nameserver 10.20.0.123 \
10.0.0.0/24 --disable-dhcp
neutron net-create internal01
neutron subnet-create internal01 \
--enable-dhcp \
--dns-nameserver 10.20.0.123 \
--name subnet01 192.168.168.0/24
neutron net-create internal02
neutron subnet-create internal02 \
--enable-dhcp \
--dns-nameserver 10.20.0.123 \
--name subnet02 192.168.222.0/24
neutron router-create vr01
neutron router-gateway-set vr01 ext_net
neutron router-interface-add vr01 subnet01
neutron router-interface-add vr01 subnet02
openstack flavor create \
--public m1.tiny \
--id auto \
--ram 1024 \
--disk 10 \
--vcpus 1 \
--rxtx-factor 1
openstack keypair create \
--public-key ~/.ssh/id_rsa.pub mykey01
# We need to ensure we're using admin project's security group
# because redundant default security groups are created.
# That causes the group rule create default to fail.
# Using the ID should make the commands succeed
ADMIN_PROJECTID=$(openstack project list|grep admin|awk {'print $2'})
SEC_GROUPID=$(openstack security group list|grep $ADMIN_PROJECTID|grep 'Default security group'|awk {'print $2'})
openstack security group rule create $SEC_GROUPID --protocol icmp
openstack security group rule create $SEC_GROUPID --dst-port 22
set +e
sudo iptables-save|grep BOOTSTACK|grep -q 10.0.0.0
if [ $? -ne 0 ];then
sudo iptables -A BOOTSTACK_MASQ -s 10.0.0.0/24 ! -d 10.0.0.0/24 -j MASQUERADE -t nat
fi
set -e
nova boot vm01 \
--flavor m1.tiny \
--image centos7-image \
--security-groups default \
--nic net-name=internal01 \
--key-name mykey01
nova boot vm02 \
--flavor m1.tiny \
--image centos7-image \
--security-groups default \
--nic net-name=internal02 \
--key-name mykey01
echo Wait 5...
sleep 5
IP1=$(neutron floatingip-create ext_net | awk '$2 == "floating_ip_address" {print $4}')
IP2=$(neutron floatingip-create ext_net | awk '$2 == "floating_ip_address" {print $4}')
nova floating-ip-associate vm01 $IP1
nova floating-ip-associate vm02 $IP2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment