Last active
September 28, 2020 18:45
-
-
Save flavio-fernandes/902b300e4aade10e0b248a9c8ca18ced to your computer and use it in GitHub Desktop.
Setup sample OSP with vms using port forwarding
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
#!/usr/bin/env bash | |
[ $(whoami) != 'stack' ] && { echo 'must be user stack' >&2; } ||: | |
cd | |
source ./overcloudrc | |
set -o xtrace | |
set -o errexit | |
# clean up existing openstack networks on public | |
for net in $(openstack network list -f value -c ID -c Name | grep -E "public|nova" | cut -d' ' -f1); do \ | |
echo network $net | |
for subnet in $(openstack subnet list --network $net -f value -c ID); do \ | |
openstack subnet delete $subnet | |
done | |
openstack network delete $net | |
done | |
[ -e CentOS-7-x86_64-GenericCloud.qcow2c ] || \ | |
curl https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2c > \ | |
CentOS-7-x86_64-GenericCloud.qcow2c | |
openstack image create "centos7" --file CentOS-7-x86_64-GenericCloud.qcow2c \ | |
--disk-format qcow2 --container-format bare \ | |
--public | |
openstack network create public --provider-physical-network datacentre \ | |
--provider-network-type flat \ | |
--external --share | |
openstack subnet create --network public public --subnet-range 10.0.0.0/24 \ | |
--allocation-pool start=10.0.0.20,end=10.0.0.250 \ | |
--dns-nameserver 9.9.9.9 --gateway 10.0.0.1 \ | |
--no-dhcp | |
openstack network create private1 | |
openstack subnet create --network private1 private1 --subnet-range 192.168.30.0/24 | |
openstack router create router1 | |
openstack router set --enable-snat --external-gateway public router1 | |
openstack router add subnet router1 private1 | |
openstack security group create sg1 | |
openstack security group rule create --ingress --protocol tcp --dst-port 22 sg1 | |
openstack security group rule create --ingress --protocol icmp sg1 | |
openstack flavor create m1.medium --disk 10 --vcpus 1 --ram 512 | |
openstack keypair create vm_key > ~/vm_key.pem | |
chmod 0600 ~/vm_key.pem | |
openstack port create --network private1 --fixed-ip subnet=private1,ip-address=192.168.30.101 \ | |
--security-group sg1 private1_vm1 | |
openstack port create --network private1 --fixed-ip subnet=private1,ip-address=192.168.30.102 \ | |
--security-group sg1 private1_vm2 | |
FIP=10.0.0.170 | |
openstack floating ip create --floating-ip-address ${FIP} public | |
FIP_UUID=$(openstack floating ip show ${FIP} -f value -c id) ; echo $FIP_UUID | |
openstack server create --flavor m1.medium --image centos7 --nic port-id=private1_vm1 --key-name vm_key --wait vm1_1 | |
openstack server create --flavor m1.medium --image centos7 --nic port-id=private1_vm2 --key-name vm_key --wait vm1_2 | |
openstack floating ip port forwarding create --internal-ip-address 192.168.30.101 --internal-protocol-port 22 \ | |
--port private1_vm1 --external-protocol-port 2021 --protocol tcp $FIP_UUID | |
openstack floating ip port forwarding create --internal-ip-address 192.168.30.102 --internal-protocol-port 22 \ | |
--port private1_vm2 --external-protocol-port 2022 --protocol tcp $FIP_UUID | |
openstack floating ip port forwarding list ${FIP_UUID} | |
exit 0 | |
source ./stackrc | |
ansible -i /usr/bin/tripleo-ansible-inventory -m copy -a "src=~/vm_key.pem dest=~/vm_key.pem" overcloud | |
SSH='ssh -i /home/heat-admin/vm_key.pem -o StrictHostKeyChecking=no' | |
SSH="${SSH} -o UserKnownHostsFile=/dev/null centos@10.0.0.170" | |
for PRT in 2021 2022; do \ | |
ansible -i /usr/bin/tripleo-ansible-inventory -m shell -b -a \ | |
"${SSH} -p ${PRT} -- \ | |
echo 'hi from \$(hostname) via port' ${PRT} \$(hostname)" \ | |
Controller 2>/dev/null | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment