devstack/tools/xen/prepare_guest_template.sh
Mate Lakat da33982947 Remove hardwired ansolabs urls
Fixes bug 1078618.

The files are no longer available on ansolabs' servers. The files were
put on github, and this change modifies the location used in devstack.

Change-Id: I1f512ad3b52d6b04d0e28ce6a532e11bfede1462
2012-11-14 12:47:17 +00:00

82 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
# This script is run by install_os_domU.sh
#
# Parameters:
# - $GUEST_NAME - hostname for the DomU VM
#
# It modifies the ubuntu image created by install_os_domU.sh
#
# This script is responsible for cusomtizing the fresh ubuntu
# image so on boot it runs the prepare_guest.sh script
# that modifies the VM so it is ready to run stack.sh.
# It does this by mounting the disk image of the VM.
#
# The resultant image is started by install_os_domU.sh,
# and once the VM has shutdown, build_xva.sh is run
# Exit on errors
set -o errexit
# Echo commands
set -o xtrace
# This directory
TOP_DIR=$(cd $(dirname "$0") && pwd)
# Include onexit commands
. $TOP_DIR/scripts/on_exit.sh
# Source params - override xenrc params in your localrc to suite your taste
source xenrc
#
# Parameters
#
GUEST_NAME="$1"
# Mount the VDI
STAGING_DIR=$($TOP_DIR/scripts/manage-vdi open $GUEST_NAME 0 1 | grep -o "/tmp/tmp.[[:alnum:]]*")
add_on_exit "$TOP_DIR/scripts/manage-vdi close $GUEST_NAME 0 1"
# Make sure we have a stage
if [ ! -d $STAGING_DIR/etc ]; then
echo "Stage is not properly set up!"
exit 1
fi
# Copy XenServer tools deb into the VM
ISO_DIR="/opt/xensource/packages/iso"
XS_TOOLS_FILE_NAME="xs-tools.deb"
XS_TOOLS_PATH="/root/$XS_TOOLS_FILE_NAME"
if [ -e "$ISO_DIR" ]; then
TOOLS_ISO=$(ls -1 $ISO_DIR/xs-tools-*.iso | head -1)
TMP_DIR=/tmp/temp.$RANDOM
mkdir -p $TMP_DIR
mount -o loop $TOOLS_ISO $TMP_DIR
DEB_FILE=$(ls $TMP_DIR/Linux/*amd64.deb)
echo "Copying XenServer tools into VM from: $DEB_FILE"
cp $DEB_FILE "${STAGING_DIR}${XS_TOOLS_PATH}"
umount $TMP_DIR
rm -rf $TMP_DIR
else
echo "WARNING: no XenServer tools found, falling back to 5.6 tools"
TOOLS_URL="https://github.com/downloads/citrix-openstack/warehouse/xe-guest-utilities_5.6.100-651_amd64.deb"
wget $TOOLS_URL -O $XS_TOOLS_FILE_NAME
cp $XS_TOOLS_FILE_NAME "${STAGING_DIR}${XS_TOOLS_PATH}"
rm -rf $XS_TOOLS_FILE_NAME
fi
# Copy prepare_guest.sh to VM
mkdir -p $STAGING_DIR/opt/stack/
cp $TOP_DIR/prepare_guest.sh $STAGING_DIR/opt/stack/prepare_guest.sh
# backup rc.local
cp $STAGING_DIR/etc/rc.local $STAGING_DIR/etc/rc.local.preparebackup
# run prepare_guest.sh on boot
cat <<EOF >$STAGING_DIR/etc/rc.local
GUEST_PASSWORD=$GUEST_PASSWORD STAGING_DIR=/ \
DO_TGZ=0 XS_TOOLS_PATH=$XS_TOOLS_PATH \
bash /opt/stack/prepare_guest.sh > /opt/stack/prepare_guest.log 2>&1
EOF