From 0ab1d46e05c310a9977aebd3156b5269dffb91fc Mon Sep 17 00:00:00 2001 From: Anthony Young Date: Thu, 13 Oct 2011 23:03:23 -0700 Subject: [PATCH 1/2] Allow user to download and install arbitrary images --- stack.sh | 29 +++++++++++++---------------- stackrc | 3 +++ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/stack.sh b/stack.sh index 870811b..29f1377 100755 --- a/stack.sh +++ b/stack.sh @@ -660,38 +660,35 @@ screen_it dash "cd $DASH_DIR && sudo /etc/init.d/apache2 restart; sudo tail -f / # Install Images # ============== -# Upload a couple images to glance. **TTY** is a simple small image that use the -# lets you login to it with username/password of user/password. TTY is useful -# for basic functionality. We all include an Ubuntu cloud build of **Natty**. -# Natty uses cloud-init, supporting login via keypair and sending scripts as -# userdata. +# Upload an image to glance. # -# Read more about cloud-init at https://help.ubuntu.com/community/CloudInit +# The default image is a small ***TTY*** testing image, which lets you login +# the username/password of root/password. +# +# TTY also uses cloud-init, supporting login via keypair and sending scripts as +# userdata. See https://help.ubuntu.com/community/CloudInit for more on cloud-init +# +# Override IMAGE_URL if you would to launch a different image. Some other options: +# natty: http://uec-images.ubuntu.com/natty/current/natty-server-cloudimg-amd64.tar.gz if [[ "$ENABLED_SERVICES" =~ "g-reg" ]]; then - # create a directory for the downloadedthe images tarballs. + # Create a directory for the downloadedthe images tarballs. mkdir -p $FILES/images - # Debug Image (TTY) - # ----------------- - - # Downloads the image (ami/aki/ari style), then extracts it. Upon extraction - # we upload to glance with the glance cli tool. TTY is a stripped down - # version of ubuntu. - IMAGE_URL=http://smoser.brickies.net/ubuntu/ttylinux-uec/ttylinux-uec-amd64-11.2_2.6.35-15_1.tar.gz + # Downloads the image (uec ami+aki style), then extracts it. IMAGE_FNAME=`echo "$IMAGE_URL" | python -c "import sys; print sys.stdin.read().split('/')[-1]"` IMAGE_NAME=`echo "$IMAGE_FNAME" | python -c "import sys; print sys.stdin.read().split('.tar.gz')[0].split('.tgz')[0]"` if [ ! -f $FILES/$IMAGE_FNAME ]; then wget -c $IMAGE_URL -O $FILES/$IMAGE_FNAME fi - # extract ami-tty/image, aki-tty/image & ari-tty/image + # Extract ami and aki files tar -zxf $FILES/$IMAGE_FNAME -C $FILES/images + # Upload to glance with the glance cli tool. RVAL=`glance add -A $SERVICE_TOKEN name="$IMAGE_NAME-kernel" is_public=true container_format=aki disk_format=aki < $FILES/images/$IMAGE_NAME-vmlinuz*` KERNEL_ID=`echo $RVAL | cut -d":" -f2 | tr -d " "` glance add -A $SERVICE_TOKEN name="$IMAGE_NAME" is_public=true container_format=ami disk_format=ami kernel_id=$KERNEL_ID < $FILES/images/$IMAGE_NAME.img - fi # Fin diff --git a/stackrc b/stackrc index 15d73ce..9a94721 100644 --- a/stackrc +++ b/stackrc @@ -27,6 +27,9 @@ NOVACLIENT_BRANCH=master OPENSTACKX_REPO=https://github.com/cloudbuilders/openstackx.git OPENSTACKX_BRANCH=diablo +# Specify a uec image to download and install into glance. +IMAGE_URL=http://smoser.brickies.net/ubuntu/ttylinux-uec/ttylinux-uec-amd64-11.2_2.6.35-15_1.tar.gz + # allow local overrides of env variables if [ -f ./localrc ]; then source ./localrc From 93947e59be5566391a3fa0a0b32906ce8c4ceffa Mon Sep 17 00:00:00 2001 From: Anthony Young Date: Thu, 13 Oct 2011 23:07:56 -0700 Subject: [PATCH 2/2] improve docs --- stack.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/stack.sh b/stack.sh index 29f1377..ea4db93 100755 --- a/stack.sh +++ b/stack.sh @@ -685,7 +685,9 @@ if [[ "$ENABLED_SERVICES" =~ "g-reg" ]]; then # Extract ami and aki files tar -zxf $FILES/$IMAGE_FNAME -C $FILES/images - # Upload to glance with the glance cli tool. + # Use glance client to add the kernel the root filesystem. + # We parse the results of the first upload to get the glance ID of the + # kernel for use when uploading the root filesystem. RVAL=`glance add -A $SERVICE_TOKEN name="$IMAGE_NAME-kernel" is_public=true container_format=aki disk_format=aki < $FILES/images/$IMAGE_NAME-vmlinuz*` KERNEL_ID=`echo $RVAL | cut -d":" -f2 | tr -d " "` glance add -A $SERVICE_TOKEN name="$IMAGE_NAME" is_public=true container_format=ami disk_format=ami kernel_id=$KERNEL_ID < $FILES/images/$IMAGE_NAME.img