Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- # buildoe -- build openembedded via ec2
- usage() {
- echo "Usage: buildoe INSTANCETYPE" 1>&2
- exit 1
- }
- if test -z "$1"; then
- usage
- fi
- if ! ssh-add -l | grep -q ' id_dsa_ec2 '; then
- echo "Adding the EC2 SSH key."
- ssh-add ~/id_dsa_ec2
- fi
- if test -z "$JAVA_HOME"; then
- source ~/ec2.sh
- fi
- case "$1" in
- m1.small|c1.medium)
- image=ami-bb709dd2
- ;;
- *)
- image=ami-55739e3c
- ;;
- esac
- # Ubuntu 9.10 server amd64: ami-55739e3c
- # Ubuntu 9.10 server i386: ami-bb709dd2
- echo -n 'Starting instance...'
- instancerequest="`ec2-request-spot-instances "$image" -z us-east-1a -r one-time -p 1.00 -k id_dsa_ec2 -t "$1" | awk '/^SPOTINSTANCEREQUEST/ { print $2 }'`"
- while true; do
- instance="`ec2-describe-spot-instance-requests "$instancerequest" | awk '/^SPOTINSTANCEREQUEST/ { print $8; exit 0; }'`"
- if test "$?" -ne 0; then
- exit 1
- fi
- if echo "$instance" | grep '^i-........$'; then
- break
- fi
- echo -n '.'
- done
- #instance="`ec2run "$image" -k id_dsa_ec2 -z us-east-1a -t "$1" | awk '/^INSTANCE/ { print $2 }'`"
- while true; do
- addr="`ec2din $instance | awk '/^INSTANCE/ { if($4 != "terminated" && $4 != "pending") { print $4; exit 0; } }'`"
- if test "$?" -ne 0; then
- exit 1
- fi
- if test 'xpending' != "x$addr"; then
- break
- fi
- sleep 10
- echo -n '!'
- done
- ec2-attach-volume vol-3d13bf54 -i $instance -d /dev/sdf
- ssh -o 'StrictHostKeyChecking no' -fN ubuntu@$addr
- if test "$?" -ne 0; then
- exit 1
- fi
- cat <<"EOF" | ssh ubuntu@$addr 'cat > buildit.sh'
- sudo apt-get update -y
- if test `uname -m` != x86_64; then
- psyco="python-psyco"
- else
- psyco=""
- fi
- sudo modprobe dm_mod
- sudo apt-get -y install git-core subversion gcc build-essential diffstat texinfo help2man texi2html gawk chrpath lvm2 $psyco
- echo 'Yes, do as I say!' | sudo apt-get install xz-utils
- sudo ln -fs /bin/bash /bin/sh
- mkdir ~/overo-oe
- sudo mount /dev/sda2 ~/overo-oe
- #sudo mount /dev/mapper/storageVG-storageFS ~/overo-oe
- cd ~/overo-oe
- sudo chmod 777 ~/overo-oe
- #sudo lvchange -a y /dev/storageVG/storageFS
- git clone git://gitorious.org/gumstix-oe/mainline.git org.openembedded.dev
- cd org.openembedded.dev
- git checkout --track -b overo origin/overo
- cd ~/overo-oe
- git clone git://git.openembedded.net/bitbake bitbake
- cd bitbake
- git checkout 1.8.18
- cd ~/overo-oe
- cp -r org.openembedded.dev/contrib/gumstix/build .
- . ~/overo-oe/build/profile
- # 84 is _SC_NPROCESSORS_ONLN
- NCPU=`python -c 'import ctypes; print ctypes.cdll.LoadLibrary("libc.so.6").sysconf(84)'`
- echo PARALLEL_MAKE = \"-j $NCPU\" >> ~/overo-oe/build/conf/site.conf
- echo BB_NUMBER_THREADS = \"$NCPU\" >> ~/overo-oe/build/conf/site.conf
- bitbake omap3-console-image
- EOF
- ssh ubuntu@$addr 'screen -dmS build ; screen -r build -X exec echo /usr/bin/time sh ~/buildit.sh'
- # source this to set up environment for EC2 tools
- export EC2_PRIVATE_KEY=~/Downloads/pk-XXX.pem
- export EC2_PRIVATE_KEY=~/Downloads/pk-XXX.pem
- export EC2_CERT=~/Downloads/cert-XXX.pem
- export JAVA_HOME=/Library/Java/Home
- export EC2_HOME=~/Downloads/ec2-api-tools-1.3-46266
- export PATH=$PATH:$EC2_HOME/bin
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement