From 346e49131b40d3dc492ce2ad193a3e316839631e Mon Sep 17 00:00:00 2001 From: Anthony Young Date: Sat, 5 Nov 2011 00:22:47 -0500 Subject: [PATCH] add script that demonstrates separation of head abd compute roles when using xen --- tools/xen/build_domU.sh | 23 ++++++++++++++--------- tools/xen/build_domU_multi.sh | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 9 deletions(-) create mode 100755 tools/xen/build_domU_multi.sh diff --git a/tools/xen/build_domU.sh b/tools/xen/build_domU.sh index 65049af..9804255 100755 --- a/tools/xen/build_domU.sh +++ b/tools/xen/build_domU.sh @@ -226,16 +226,21 @@ mkdir -p /boot/guest SR_UUID=`xe sr-list --minimal name-label="Local storage"` xe sr-param-set uuid=$SR_UUID other-config:i18n-key=local-storage -# Uninstall previous runs -xe vm-list --minimal name-label="$LABEL" | xargs ./scripts/uninstall-os-vpx.sh -# Destroy any instances that were launched -for uuid in `xe vm-list | grep -1 instance | grep uuid | sed "s/.*\: //g"`; do - echo "Shutting down nova instance $uuid" - xe vm-unpause uuid=$uuid || true - xe vm-shutdown uuid=$uuid - xe vm-destroy uuid=$uuid -done +# Shutdown previous runs +DO_SHUTDOWN=${DO_SHUTDOWN:-1} +if [ "$DO_SHUTDOWN" = "1" ]; then + # Uninstall previous runs + xe vm-list --minimal name-label="$LABEL" | xargs ./scripts/uninstall-os-vpx.sh + + # Destroy any instances that were launched + for uuid in `xe vm-list | grep -1 instance | grep uuid | sed "s/.*\: //g"`; do + echo "Shutting down nova instance $uuid" + xe vm-unpause uuid=$uuid || true + xe vm-shutdown uuid=$uuid + xe vm-destroy uuid=$uuid + done +fi # Path to head xva. By default keep overwriting the same one to save space USE_SEPARATE_XVAS=${USE_SEPARATE_XVAS:-0} diff --git a/tools/xen/build_domU_multi.sh b/tools/xen/build_domU_multi.sh new file mode 100755 index 0000000..130bec5 --- /dev/null +++ b/tools/xen/build_domU_multi.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +# Echo commands +set -o xtrace + +# Head node host, which runs glance, api, keystone +HEAD_PUB_IP=${HEAD_PUB_IP:-192.168.1.57} +HEAD_MGT_IP=${HEAD_MGT_IP:-172.16.100.57} + +COMPUTE_PUB_IP=${COMPUTE_PUB_IP:-192.168.1.58} +COMPUTE_MGT_IP=${COMPUTE_MGT_IP:-172.16.100.58} + +# Networking params +FLOATING_RANGE=${FLOATING_RANGE:-192.168.1.196/30} + +# Variables common amongst all hosts in the cluster +COMMON_VARS="$STACKSH_PARAMS MYSQL_HOST=$HEAD_MGT_IP RABBIT_HOST=$HEAD_MGT_IP GLANCE_HOSTPORT=$HEAD_MGT_IP:9292 FLOATING_RANGE=$FLOATING_RANGE" + +# Helper to launch containers +function build_domU { + GUEST_NAME=$1 PUB_IP=$2 MGT_IP=$3 DO_SHUTDOWN=$4 TERMINATE=$TERMINATE STACKSH_PARAMS="$COMMON_VARS $5" ./build_domU.sh +} + +# Launch the head node - headnode uses a non-ip domain name, +# because rabbit won't launch with an ip addr hostname :( +build_domU HEADNODE $HEAD_PUB_IP $HEAD_MGT_IP 1 "ENABLED_SERVICES=g-api,g-reg,key,n-api,n-sch,n-vnc,horizon,mysql,rabbit" + +# Wait till the head node is up +while ! curl -L http://$HEAD_PUB_IP | grep -q username; do + echo "Waiting for head node ($HEAD_PUB_IP) to start..." + sleep 5 +done + +# Build the HA compute host +build_domU $COMPUTE_PUB_IP $COMPUTE_PUB_IP $COMPUTE_MGT_IP 0 "ENABLED_SERVICES=n-cpu,n-net,n-api"