remove shell version
This commit is contained in:
parent
42cc6850b2
commit
207b03c3e6
117
setup_tunnel.sh
117
setup_tunnel.sh
@ -1,117 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#set -x
|
|
||||||
OS_KEYPAIR_NAME=ovh_$(hostname -s)
|
|
||||||
OS_MACHINE_NAME=gbv
|
|
||||||
SERVER_RUNNING=false
|
|
||||||
|
|
||||||
function int_hdl(){
|
|
||||||
if $SERVER_RUNNING; then
|
|
||||||
echo "Deleting machine..."
|
|
||||||
OPENSTACK_RESPONSE="$(openstack server delete --wait $OS_MACHINE_NAME)"
|
|
||||||
until [ "$OPENSTACK_TERMINATION_RESPONSE" = '[]' ]
|
|
||||||
do
|
|
||||||
echo "Waiting for termination..."
|
|
||||||
sleep 10
|
|
||||||
OPENSTACK_TERMINATION_RESPONSE="$(openstack server list -f json)"
|
|
||||||
echo "OpenStack said:"
|
|
||||||
jq <<< $OPENSTACK_TERMINATION_RESPONSE
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
trap int_hdl SIGINT
|
|
||||||
source openrc.sh
|
|
||||||
|
|
||||||
#
|
|
||||||
# Prerequisites
|
|
||||||
#
|
|
||||||
#if ! command -v ipcalc-ng &>/dev/null
|
|
||||||
#then
|
|
||||||
#echo >&2 "ipcalc-ng is required. Exiting."
|
|
||||||
#exit 1
|
|
||||||
#fi
|
|
||||||
if ! command -v openstack &>/dev/null
|
|
||||||
then
|
|
||||||
echo >&2 "openstack is required. Exiting."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if ! command -v nova &>/dev/null
|
|
||||||
then
|
|
||||||
echo >&2 "nova is required. Exiting."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if ! command -v ssh &>/dev/null
|
|
||||||
then
|
|
||||||
echo >&2 "ssh is required. Exiting."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if ! command -v ssh-keygen &>/dev/null
|
|
||||||
then
|
|
||||||
echo >&2 "ssh-keygen is required. Exiting."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if ! command -v jq &>/dev/null
|
|
||||||
then
|
|
||||||
echo >&2 "jq is required. Exiting."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Upload key material
|
|
||||||
#
|
|
||||||
if [ ! -e ~/.ssh/id_ovh ]
|
|
||||||
then
|
|
||||||
echo "Generating SSH key..."
|
|
||||||
ssh-keygen -f ~/.ssh/id_ovh
|
|
||||||
fi
|
|
||||||
echo "Checking for SSH key in OpenStack..."
|
|
||||||
openstack keypair list|grep -q $OS_KEYPAIR_NAME
|
|
||||||
RESULT=$?
|
|
||||||
if [ $RESULT -eq 1 ]; then
|
|
||||||
echo "Uploading SSH key to OpenStack..."
|
|
||||||
nova keypair-add --pub-key ~/.ssh/id_ovh.pub $OS_KEYPAIR_NAME
|
|
||||||
fi
|
|
||||||
#
|
|
||||||
# Get flavor and image
|
|
||||||
#
|
|
||||||
echo "Gathering image and flavor information..."
|
|
||||||
FLAVOR_PRESEL="$(openstack flavor list -f json|jq -r '.[]|select(.Name=="s1-2")')"
|
|
||||||
echo "Selected this flavor:"
|
|
||||||
jq <<< $FLAVOR_PRESEL
|
|
||||||
FLAVOR="$(jq -r '.ID' <<< $FLAVOR_PRESEL)"
|
|
||||||
IMAGE_PRESEL="$(openstack image list -f json|jq -r '.[]|select(.Name=="Debian 10")')"
|
|
||||||
echo "Selected this image:"
|
|
||||||
jq <<< $IMAGE_PRESEL
|
|
||||||
IMAGE="$(jq -r '.ID' <<< $IMAGE_PRESEL)"
|
|
||||||
echo "Creating server..."
|
|
||||||
openstack server create --image $IMAGE --flavor $FLAVOR --wait --key-name $OS_KEYPAIR_NAME $OS_MACHINE_NAME
|
|
||||||
SERVER_RUNNING=true
|
|
||||||
|
|
||||||
#
|
|
||||||
# Extract IPv4 address
|
|
||||||
#
|
|
||||||
SERVER_IPS="$(openstack server show gbv -f json|jq -r .addresses)"
|
|
||||||
SERVER_IPS="${SERVER_IPS##Ext-Net=}"
|
|
||||||
read -a SERVER_IPS <<< $SERVER_IPS
|
|
||||||
SERVER_IPS[0]="${SERVER_IPS[0]%%,}"
|
|
||||||
#ipcalc-ng -c4 ${SERVER_IPS[0]} &>/dev/null
|
|
||||||
grep -q '\.' <<< ${SERVER_IPS[0]}
|
|
||||||
IS_IPV4=$?
|
|
||||||
if [ $IS_IPV4 -eq 0 ]
|
|
||||||
then
|
|
||||||
SERVER_IP=${SERVER_IPS[0]}
|
|
||||||
else
|
|
||||||
SERVER_IP=${SERVER_IPS[1]}
|
|
||||||
fi
|
|
||||||
echo "Server reachable on $SERVER_IP."
|
|
||||||
#
|
|
||||||
# Open tunnel
|
|
||||||
#
|
|
||||||
echo "Waiting 30 seconds for setup completion..."
|
|
||||||
sleep 30
|
|
||||||
echo "Opening tunnel on socks://localhost:23406..."
|
|
||||||
|
|
||||||
trap - SIGINT
|
|
||||||
ssh -D 23406 -i ~/.ssh/id_ovh -o StrictHostKeyChecking=no -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null -N debian@$SERVER_IP
|
|
||||||
echo "Tunnel closed. Destroying server..."
|
|
||||||
int_hdl
|
|
Loading…
Reference in New Issue
Block a user