Created by
spikeekips
| #!/bin/bash
set -x
set -e
get_instanceid () {
F=$1 python <<EOF
import os
import sys
import json
o = json.load(open(os.environ['F']))
instances = o.get('Instances')
if instances is None:
print('[error] invalid output: "Instances" is missing')
sys.exit(1)
ids = list()
for i in instances:
id = i.get('InstanceId')
if id is None:
print('[error] invalid output: "InstanceId" is missing')
sys.exit(1)
ids.append(id)
print(' '.join(ids))
EOF
}
get_ip() {
F=$1 python <<EOF
import os
import sys
import json
o = json.load(open(os.environ['F']))
reservations = o.get('Reservations')
if reservations is None or len(reservations) < 1:
print('[error] invalid output: "Reservations" is missing')
sys.exit(1)
for r in reservations:
instances = r.get('Instances')
if instances is None or len(instances) < 1:
print('[error] invalid output: "Instances" is missing')
sys.exit(1)
for i in instances:
print(i.get('PublicIpAddress'))
sys.exit(0)
EOF
}
aws --profile blockchainos ec2 run-instances --image-id ami-d28a53bc --count 3 --instance-type t2.micro --key-name tokennet-test --security-group-ids sg-f8cbba90 --subnet-id subnet-34d9cf5d > /tmp/ec2-output.json
# set tags
n=8
for i in $(get_instanceid /tmp/ec2-output.json)
do
name="server$n"
aws --profile blockchainos ec2 create-tags --resources $i --tags Key=target,Value=tokennet Key=group,Value=test Key=Name,Value=${name}
aws --profile blockchainos ec2 describe-instances --instance-ids $i > /tmp/ec2-$i.json
ip=$(get_ip /tmp/ec2-$i.json)
echo $i","$name","$ip
n=$(expr $n + 1)
done
|