Snippets

spikeekips This script will create the multiple aws instances for tokennet testing

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

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.