| 1 | #!/bin/sh |
|---|
| 2 | |
|---|
| 3 | # ami-2675974f = Ubuntu 9.10 server i386 5Gb EBS |
|---|
| 4 | # ami-916c81f8 = my snapshot: Ubuntu 9.10 server i386 5Gb EBS |
|---|
| 5 | AMI=ami-916c81f8 |
|---|
| 6 | |
|---|
| 7 | USER=ubuntu |
|---|
| 8 | KEY=simonmar-us-east-keypair |
|---|
| 9 | |
|---|
| 10 | PWD=`pwd` |
|---|
| 11 | |
|---|
| 12 | # ec2-run-instances ami-916c81f8 -b /dev/sdc=ephemeral0 -k simonmar-us-east-keypair -t m1.small |
|---|
| 13 | |
|---|
| 14 | ec2-request-spot-instances \ |
|---|
| 15 | ${AMI} \ |
|---|
| 16 | --price 0.08 \ |
|---|
| 17 | --type one-time \ |
|---|
| 18 | -k ${KEY} \ |
|---|
| 19 | -t c1.medium |
|---|
| 20 | |
|---|
| 21 | # This doesn't work; it seems to be already enabled in my snapshot |
|---|
| 22 | # -b /dev/sdc=ephemeral0 \ |
|---|
| 23 | |
|---|
| 24 | echo -n waiting for instance startup... |
|---|
| 25 | while true; do |
|---|
| 26 | instance=`ec2-describe-instances | grep "${AMI}.*running"` |
|---|
| 27 | if [ "$instance" != "" ]; then break; fi |
|---|
| 28 | sleep 1 |
|---|
| 29 | echo -n . |
|---|
| 30 | done |
|---|
| 31 | |
|---|
| 32 | EC2_HOST=`echo $instance | cut -d ' ' -f 4` |
|---|
| 33 | |
|---|
| 34 | echo ${EC2_HOST} |
|---|
| 35 | |
|---|
| 36 | cp ~/.ssh/config ~/.ssh/config.old |
|---|
| 37 | sed <~/.ssh/config >~/.ssh/config.new "s|Hostname ec2.*amazonaws.com|Hostname ${EC2_HOST}|;s|IdentityFile .*pem|IdentityFile ${PWD}/${KEY}.pem|" |
|---|
| 38 | mv ~/.ssh/config.new ~/.ssh/config |
|---|
| 39 | chmod 600 ~/.ssh/config |
|---|
| 40 | |
|---|
| 41 | # copy some files up |
|---|
| 42 | if test -f ~/.screenrc; then |
|---|
| 43 | scp prep_instance validate ~/.screenrc ec2: |
|---|
| 44 | fi |
|---|
| 45 | |
|---|
| 46 | # prep the instance (mount the ephemeral drive etc.) |
|---|
| 47 | ssh ec2 sh prep_instance |
|---|
| 48 | |
|---|
| 49 | echo "to log in: ssh ec2" |
|---|
| 50 | echo "to log in with screen: ssh -t ec2 screen -R" |
|---|
| 51 | echo "to push patches to EC2: ./darcs-all --checked-out -r ec2:ghc push" |
|---|
| 52 | echo "to validate GHC: ssh ec2 sh validate" |
|---|
| 53 | echo "to shut down: ssh ec2 sudo halt" |
|---|