Skip to content

Instantly share code, notes, and snippets.

@flavio-fernandes
Last active September 28, 2020 18:45
Show Gist options
  • Save flavio-fernandes/902b300e4aade10e0b248a9c8ca18ced to your computer and use it in GitHub Desktop.
Save flavio-fernandes/902b300e4aade10e0b248a9c8ca18ced to your computer and use it in GitHub Desktop.
Setup sample OSP with vms using port forwarding
#!/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