forked from mpdunne/awsconnect
-
Notifications
You must be signed in to change notification settings - Fork 0
/
awsconnect.sh
49 lines (41 loc) · 1.41 KB
/
awsconnect.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/bash
function awsstart {
region=$1
instance_id=$2
echo "Starting instance: $region $instance_id"
aws ec2 start-instances --region $region --instance-ids "$instance_id"
echo "Waiting 10 seconds..."
sleep 10
}
function awsconnect {
key_file=$1
public_dns=$2
echo "Connecting to ${public_dns}"
ssh -i $key_file "ubuntu@${public_dns}"
}
function awsgetdns {
region=$1
instance_id=$2
echo $(aws ec2 describe-instances --region $region --filters "Name=instance-id,Values=${instance_id}" --query "Reservations[].Instances[].PublicDnsName" --output text)
}
function awsgetdnsbyname {
region=$1
name=$2
echo $(aws ec2 describe-instances --region $region --filters "Name=tag:Name,Values=${name}" --query "Reservations[].Instances[].PublicDnsName" --output text)
}
function awsgo {
key_file=$1
region=$2
instance_id=$3
echo "Getting the ip address..."
public_dns=$(awsgetdns $region $instance_id)
if [[ "$public_dns" == "" ]]; then
awsstart $region $instance_id
public_dns=$(awsgetdns $region $instance_id)
fi
if [[ "$public_dns" == "" ]]; then
echo "Could not get the ip address of ${instance_id}, it is not reachable."
else
awsconnect $key_file $public_dns
fi
}