devstack/tools/xen/scripts/install_ubuntu_template.sh
John Garbutt d8f1a87a45 Make it easier to use Precise or Oneric with XenServer DevStack
This is a partial fix for bug 1009937

Change-Id: I1fc7059cd812bce1539a5050f60717db4cbd81ef
2012-08-03 12:44:08 +01:00

79 lines
2.5 KiB
Bash
Executable File

#!/bin/bash
#
# This creates an Ubuntu Server 32bit or 64bit template
# on Xenserver 5.6.x, 6.0.x and 6.1.x
# The template does a net install only
#
# Based on a script by: David Markey <david.markey@citrix.com>
#
# Exit on errors
set -o errexit
# Echo commands
set -o xtrace
# This directory
BASE_DIR=$(cd $(dirname "$0") && pwd)
# For default setings see xenrc
source $BASE_DIR/../xenrc
# Get the params
preseed_url=$1
# Delete template or skip template creation as required
previous_template=$(xe template-list name-label="$UBUNTU_INST_TEMPLATE_NAME" \
params=uuid --minimal)
if [ -n "$previous_template" ]; then
if $CLEAN_TEMPLATES; then
xe template-param-clear param-name=other-config uuid=$previous_template
xe template-uninstall template-uuid=$previous_template force=true
else
echo "Template $UBUNTU_INST_TEMPLATE_NAME already present"
exit 0
fi
fi
# Get built-in template
builtin_name="Debian Squeeze 6.0 (32-bit)"
builtin_uuid=$(xe template-list name-label="$builtin_name" --minimal)
if [[ -z $builtin_uuid ]]; then
echo "Cant find the Debian Squeeze 32bit template on your XenServer."
exit 1
fi
# Clone built-in template to create new template
new_uuid=$(xe vm-clone uuid=$builtin_uuid \
new-name-label="$UBUNTU_INST_TEMPLATE_NAME")
# Some of these settings can be found in example preseed files
# however these need to be answered before the netinstall
# is ready to fetch the preseed file, and as such must be here
# to get a fully automated install
pvargs="-- quiet console=hvc0 partman/default_filesystem=ext3 \
console-setup/ask_detect=false locale=${UBUNTU_INST_LOCALE} \
keyboard-configuration/layoutcode=${UBUNTU_INST_KEYBOARD} \
netcfg/choose_interface=${HOST_IP_IFACE} \
netcfg/get_hostname=os netcfg/get_domain=os auto \
url=${preseed_url}"
if [ "$NETINSTALLIP" != "dhcp" ]; then
netcfgargs="netcfg/disable_autoconfig=true \
netcfg/get_nameservers=${UBUNTU_INST_NAMESERVERS} \
netcfg/get_ipaddress=${UBUNTU_INST_IP} \
netcfg/get_netmask=${UBUNTU_INST_NETMASK} \
netcfg/get_gateway=${UBUNTU_INST_GATEWAY} \
netcfg/confirm_static=true"
pvargs="${pvargs} ${netcfgargs}"
fi
xe template-param-set uuid=$new_uuid \
other-config:install-methods=http \
other-config:install-repository="$UBUNTU_INST_REPOSITORY" \
PV-args="$pvargs" \
other-config:debian-release="$UBUNTU_INST_RELEASE" \
other-config:default_template=true \
other-config:install-arch="$UBUNTU_INST_ARCH"
echo "Ubuntu template installed uuid:$new_uuid"