Last active
January 17, 2017 14:42
-
-
Save nuriel77/d8d03590d754a44691816ea85d6dd53c to your computer and use it in GitHub Desktop.
prepare overcloud virtual test environment
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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