github.com/blixtra/rkt@v0.8.1-0.20160204105720-ab0d1add1a43/tests/aws.sh (about) 1 #!/bin/bash 2 3 set -e 4 5 SCRIPTPATH=$(dirname "$0") 6 cd $SCRIPTPATH 7 8 KEY_PAIR_NAME=rkt-testing-${USER} 9 SECURITY_GROUP=rkt-testing-${USER}-security-group 10 11 ## First time only 12 if [ "$1" = "setup" ] ; then 13 MYIP=$(curl --silent http://checkip.amazonaws.com/) 14 15 aws ec2 create-key-pair --key-name $KEY_PAIR_NAME --query 'KeyMaterial' --output text > ${KEY_PAIR_NAME}.pem 16 chmod 0600 ${KEY_PAIR_NAME}.pem 17 aws ec2 create-security-group --group-name $SECURITY_GROUP --description "Security group for rkt testing" 18 aws ec2 authorize-security-group-ingress --group-name $SECURITY_GROUP --protocol tcp --port 22 --cidr $MYIP/32 19 exit 0 20 fi 21 22 DISTRO=$1 23 GIT_URL=${2-https://github.com/coreos/rkt.git} 24 GIT_BRANCH=${3-master} 25 26 test -f cloudinit/${DISTRO}.cloudinit 27 CLOUDINIT_IN=$PWD/cloudinit/${DISTRO}.cloudinit 28 29 if [ "$DISTRO" = "fedora-22" ] ; then 30 # https://getfedora.org/en/cloud/download/ 31 # Search on AWS or look at 32 # https://apps.fedoraproject.org/datagrepper/raw?category=fedimg 33 # Sources: https://github.com/fedora-infra/fedimg/blob/develop/bin/list-the-amis.py 34 35 # Fedora-Cloud-Base-22-20151026.x86_64-eu-central-1-HVM-standard-0 was deleted 36 37 # Fedora-Cloud-Base-22-20150521.x86_64-eu-central-1-HVM-standard-0 38 AMI=ami-a88eb0b5 39 AWS_USER=fedora 40 elif [ "$DISTRO" = "fedora-23" ] ; then 41 # Fedora-Cloud-Base-23-20160129.x86_64-eu-central-1-HVM-standard-0 42 AMI=ami-4d3e2621 43 AWS_USER=fedora 44 elif [ "$DISTRO" = "fedora-rawhide" ] ; then 45 # rawhide is currently broken 46 # Error: nothing provides libpsl.so.0()(64bit) needed by wget-1.17.1-1.fc24.x86_64 47 48 # Fedora-Cloud-Base-rawhide-20160127.x86_64-eu-central-1-HVM-standard-0 49 AMI=ami-877068eb 50 AWS_USER=fedora 51 elif [ "$DISTRO" = "ubuntu-1604" ] ; then 52 # https://cloud-images.ubuntu.com/locator/ec2/ 53 # ubuntu/images-milestone/hvm/ubuntu-xenial-alpha2-amd64-server-20160125 54 AMI=ami-b4a5b9d8 55 AWS_USER=ubuntu 56 elif [ "$DISTRO" = "ubuntu-1510" ] ; then 57 # https://cloud-images.ubuntu.com/locator/ec2/ 58 # ubuntu/images/hvm/ubuntu-wily-15.10-amd64-server-20160123 59 AMI=ami-e9869f85 60 AWS_USER=ubuntu 61 elif [ "$DISTRO" = "debian" ] ; then 62 # https://wiki.debian.org/Cloud/AmazonEC2Image/Jessie 63 # Debian 8.1 64 AMI=ami-02b78e1f 65 AWS_USER=admin 66 elif [ "$DISTRO" = "centos" ] ; then 67 # Needs to subscribe first, see: 68 # https://wiki.centos.org/Cloud/AWS 69 # CentOS-7 x86_64 HVM 70 AMI=ami-e68f82fb 71 AWS_USER=centos 72 fi 73 74 test -n "$AMI" 75 test -n "$AWS_USER" 76 test -f "${KEY_PAIR_NAME}.pem" 77 78 CLOUDINIT=$(mktemp --tmpdir rkt-cloudinit.XXXXXXXXXX) 79 sed -e "s#@GIT_URL@#${GIT_URL}#g" \ 80 -e "s#@GIT_BRANCH@#${GIT_BRANCH}#g" \ 81 < $CLOUDINIT_IN >> $CLOUDINIT 82 83 INSTANCE_ID=$(aws ec2 run-instances \ 84 --image-id $AMI \ 85 --count 1 \ 86 --key-name $KEY_PAIR_NAME \ 87 --security-groups $SECURITY_GROUP \ 88 --instance-type t2.micro \ 89 --instance-initiated-shutdown-behavior terminate \ 90 --user-data file://$CLOUDINIT \ 91 --output text \ 92 --query 'Instances[*].InstanceId' \ 93 ) 94 echo INSTANCE_ID=$INSTANCE_ID 95 96 while state=$(aws ec2 describe-instances \ 97 --instance-ids $INSTANCE_ID \ 98 --output text \ 99 --query 'Reservations[*].Instances[*].State.Name' \ 100 ); test "$state" = "pending"; do 101 sleep 1; echo -n '.' 102 done; echo " $state" 103 104 AWS_IP=$(aws ec2 describe-instances \ 105 --instance-ids $INSTANCE_ID \ 106 --output text \ 107 --query 'Reservations[*].Instances[*].PublicIpAddress' \ 108 ) 109 echo AWS_IP=$AWS_IP 110 111 rm -f $CLOUDINIT 112 113 sleep 5 114 aws ec2 get-console-output --instance-id $INSTANCE_ID --output text | 115 perl -ne 'print if /BEGIN SSH .* FINGERPRINTS/../END SSH .* FINGERPRINTS/' 116 117 echo "Connect with:" 118 echo ssh -o ServerAliveInterval=20 -i ${SCRIPTPATH}/${KEY_PAIR_NAME}.pem ${AWS_USER}@${AWS_IP} 119 echo "Check the logs with:" 120 echo tail -n 5000 -f /var/tmp/rkt-test.log 121