56 lines
1.2 KiB
Bash
Executable file
56 lines
1.2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
function valid_ip()
|
|
{
|
|
local ip=$1
|
|
local stat=1
|
|
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
|
|
OIFS=$IFS
|
|
IFS='.'
|
|
ip=($ip)
|
|
IFS=$OIFS
|
|
[[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \
|
|
&& ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]
|
|
stat=$?
|
|
fi
|
|
return $stat
|
|
}
|
|
|
|
LABEL=$1
|
|
echo Label: $LABEL
|
|
echo API key: $VULTR_API_KEY
|
|
|
|
VPSPLANID=${2:-29}
|
|
|
|
SSHKEYID=`curl -s https://api.vultr.com/v1/sshkey/list\?api_key\=$VULTR_API_KEY | cut -d\" -f2`
|
|
echo Got your ssh key ID $SSHKEYID:
|
|
|
|
SUBID=`curl -s -d "DCID=9&VPSPLANID=$VPSPLANID&OSID=179&label=$LABEL&SSHKEYID=$SSHKEYID" https://api.vultr.com/v1/server/create\?api_key\=$VULTR_API_KEY | cut -d\" -f4`
|
|
echo Got your SUB ID $SUBID:
|
|
|
|
while :
|
|
do
|
|
IP=`curl -s https://api.vultr.com/v1/server/list_ipv4\?api_key\=$VULTR_API_KEY\&SUBID\=$SUBID | cut -d\" -f6`
|
|
if valid_ip $IP; then
|
|
break
|
|
else
|
|
echo "waiting to get an IP..."
|
|
sleep 5
|
|
fi
|
|
done
|
|
|
|
echo Writing $LABEL to /etc/hosts file, needs your root password:
|
|
sudo -- sh -c "echo $IP $LABEL \#$SUBID >> /etc/hosts"
|
|
|
|
while :
|
|
do
|
|
ssh -o "StrictHostKeyChecking no" -o "BatchMode yes" root@$LABEL exit
|
|
if [ $? == 0 ];
|
|
then
|
|
break
|
|
else
|
|
echo "waiting to be able to ssh..."
|
|
sleep 5
|
|
fi
|
|
done
|
|
|