Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- aws ec2 describe-vpcs --filters "Name=isDefault,Values=true" --query "Vpcs[0].VpcId" --output text
- DEFAULTVPCID=$(aws ec2 describe-vpcs --filters "Name=isDefault,Values=true" --query "Vpcs[0].VpcId" --output text)
- echo Your VPC is $DEFAULTVPCID.
- aws ec2 describe-subnets --filters "Name=vpc-id,Values=$DEFAULTVPCID" --query "Subnets[0].SubnetId" --output text
- SUBNETID=$(aws ec2 describe-subnets --filters "Name=vpc-id,Values=$DEFAULTVPCID" --query "Subnets[0].SubnetId" --output text)
- echo Your subnet is $SUBNETID.
- SG=$(aws ec2 create-security-group \
- --group-name AppSG\
- --description "The security group of the application." \
- --vpc-id $DEFAULTVPCID\
- --query 'GroupId' \
- --output text)
- echo The security group is $SG.
- aws ec2 authorize-security-group-ingress \
- --group-id $SG \
- --protocol tcp \
- --port 8080 \
- --cidr 0.0.0.0/0
- AMI=$(aws ec2 describe-images \
- --owners 099720109477 \
- --filters 'Name=name,Values=ubuntu/images/hvm-ssd/ubuntu-*-22.04-amd64-server-*' 'Name=state,Values=available' \
- --query 'sort_by(Images, &CreationDate)[-1].[ImageId]' \
- --output text)
- echo The AMI is going to be $AMI.
- cat << EOF > pokemon.sh
- #!/bin/sh
- sudo apt update
- sudo apt install openjdk-17-jre-headless -y
- wget https://github.com/ciberado/pokemon-java/releases/download/v2.0.0/pokemon-2.0.0.jar
- java -jar pokemon-2.0.0.jar
- EOF
- cat pokemon.sh
- aws ec2 run-instances \
- --subnet-id $SUBNETID\
- --image-id $AMI \
- --security-group-ids $SG \
- --instance-type t3.nano \
- --block-device-mapping DeviceName=/dev/sda1,Ebs={VolumeSize=8} \
- --user-data file://pokemon.sh \
- --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=PokemonServer},{Key=App,Value=Pokemon}]"
- IP=$(aws ec2 describe-instances \
- --filters "Name=tag:Name,Values=PokemonServer" \
- --query 'Reservations[*].Instances[*].PublicIpAddress' \
- --output text)
- echo Your application is at http://$IP:8080
- echo And your Pokémon is $(curl -s http://$IP:8080/ | jq .name -r).
Advertisement
Add Comment
Please, Sign In to add comment