From 1b534e77b0954e6febddb8db87bdabefc8bade94 Mon Sep 17 00:00:00 2001 From: Abraham Arce Date: Tue, 30 Oct 2018 09:32:43 -0600 Subject: [PATCH] [Doc] Compute Identity Nodes Common Code + Compute identity nodes are required for Standard Controller configuration setups. Move their creation and removal functions to common file: - create_compute - destroy_compute Allow also to specify the number of Compute nodes to be created. Change-Id: I5d687b4daf16745758c65ed0d44eec5307e0f7f4 Signed-off-by: Abraham Arce --- .../libvirt/destroy_standard_controller.sh | 17 ++------- deployment/libvirt/functions.sh | 36 +++++++++++++++++++ .../libvirt/setup_standard_controller.sh | 18 ++-------- 3 files changed, 42 insertions(+), 29 deletions(-) diff --git a/deployment/libvirt/destroy_standard_controller.sh b/deployment/libvirt/destroy_standard_controller.sh index 436c098f..10e24db9 100755 --- a/deployment/libvirt/destroy_standard_controller.sh +++ b/deployment/libvirt/destroy_standard_controller.sh @@ -5,25 +5,14 @@ SCRIPT_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}" )" )" source ${SCRIPT_DIR}/functions.sh CONFIGURATION="standardcontroller" -BRIDGE_INTERFACE=${BRIDGE_INTERFACE:-stxbr} CONTROLLER=${CONTROLLER:-controller} COMPUTE=${COMPUTE:-compute} +COMPUTE_NODES_NUMBER=${COMPUTE_NODES_NUMBER:-1} DOMAIN_DIRECTORY=vms destroy_controller ${CONFIGURATION} ${CONTROLLER} -for i in {0..1}; do +for ((i=0; i<=$COMPUTE_NODES_NUMBER; i++)); do COMPUTE_NODE=${COMPUTE}-${i} - DOMAIN_FILE=$DOMAIN_DIRECTORY/$COMPUTE_NODE.xml - if virsh list --all --name | grep ${COMPUTE_NODE}; then - STATUS=$(virsh list --all | grep ${COMPUTE_NODE} | awk '{ print $3}') - if ([ "$STATUS" == "running" ]) - then - sudo virsh destroy ${COMPUTE_NODE} - fi - sudo virsh undefine ${COMPUTE_NODE} - delete_disk /var/lib/libvirt/images/${COMPUTE_NODE}-0.img - delete_disk /var/lib/libvirt/images/${COMPUTE_NODE}-1.img - [ -e ${DOMAIN_FILE} ] && delete_xml ${DOMAIN_FILE} - fi + destroy_compute $COMPUTE_NODE done diff --git a/deployment/libvirt/functions.sh b/deployment/libvirt/functions.sh index 00dc1e13..6ddd7a3a 100644 --- a/deployment/libvirt/functions.sh +++ b/deployment/libvirt/functions.sh @@ -132,3 +132,39 @@ destroy_controller() { fi done } + +# Create a Compute node +create_compute() { + local COMPUTE_NODE=$1 + local DOMAIN_FILE=${DOMAIN_DIRECTORY}/${COMPUTE_NODE}.xml + sudo qemu-img create -f qcow2 /var/lib/libvirt/images/${COMPUTE_NODE}-0.img 200G + sudo qemu-img create -f qcow2 /var/lib/libvirt/images/${COMPUTE_NODE}-1.img 200G + cp compute.xml ${DOMAIN_FILE} + sed -i -e " + s,NAME,${COMPUTE_NODE},; + s,DISK0,/var/lib/libvirt/images/${COMPUTE_NODE}-0.img,; + s,DISK1,/var/lib/libvirt/images/${COMPUTE_NODE}-1.img, + s,%BR1%,${BRIDGE_INTERFACE}1, + s,%BR2%,${BRIDGE_INTERFACE}2, + s,%BR3%,${BRIDGE_INTERFACE}3, + s,%BR4%,${BRIDGE_INTERFACE}4, + " ${DOMAIN_FILE} + sudo virsh define ${DOMAIN_FILE} +} + +# Delete a Compute node +destroy_compute() { + local COMPUTE_NODE=$1 + local DOMAIN_FILE=$DOMAIN_DIRECTORY/$COMPUTE_NODE.xml + if virsh list --all --name | grep ${COMPUTE_NODE}; then + STATUS=$(virsh list --all | grep ${COMPUTE_NODE} | awk '{ print $3}') + if ([ "$STATUS" == "running" ]) + then + sudo virsh destroy ${COMPUTE_NODE} + fi + sudo virsh undefine ${COMPUTE_NODE} + delete_disk /var/lib/libvirt/images/${COMPUTE_NODE}-0.img + delete_disk /var/lib/libvirt/images/${COMPUTE_NODE}-1.img + [ -e ${DOMAIN_FILE} ] && delete_xml ${DOMAIN_FILE} + fi +} diff --git a/deployment/libvirt/setup_standard_controller.sh b/deployment/libvirt/setup_standard_controller.sh index 80636049..a164f931 100755 --- a/deployment/libvirt/setup_standard_controller.sh +++ b/deployment/libvirt/setup_standard_controller.sh @@ -27,6 +27,7 @@ CONFIGURATION="standardcontroller" BRIDGE_INTERFACE=${BRIDGE_INTERFACE:-stxbr} CONTROLLER=${CONTROLLER:-controller} COMPUTE=${COMPUTE:-compute} +COMPUTE_NODES_NUMBER=${COMPUTE_NODES_NUMBER:-1} DOMAIN_DIRECTORY=vms bash ${SCRIPT_DIR}/destroy_standard_controller.sh @@ -35,22 +36,9 @@ bash ${SCRIPT_DIR}/destroy_standard_controller.sh create_controller $CONFIGURATION $CONTROLLER $BRIDGE_INTERFACE $ISOIMAGE -for i in {0..1}; do +for ((i=0; i<=$COMPUTE_NODES_NUMBER; i++)); do COMPUTE_NODE=${COMPUTE}-${i} - sudo qemu-img create -f qcow2 /var/lib/libvirt/images/${COMPUTE_NODE}-0.img 200G - sudo qemu-img create -f qcow2 /var/lib/libvirt/images/${COMPUTE_NODE}-1.img 200G - DOMAIN_FILE=${DOMAIN_DIRECTORY}/${COMPUTE_NODE}.xml - cp ${SCRIPT_DIR}/compute.xml ${DOMAIN_FILE} - sed -i -e " - s,NAME,${COMPUTE_NODE},; - s,DISK0,/var/lib/libvirt/images/${COMPUTE_NODE}-0.img,; - s,DISK1,/var/lib/libvirt/images/${COMPUTE_NODE}-1.img, - s,%BR1%,${BRIDGE_INTERFACE}1, - s,%BR2%,${BRIDGE_INTERFACE}2, - s,%BR3%,${BRIDGE_INTERFACE}3, - s,%BR4%,${BRIDGE_INTERFACE}4, - " ${DOMAIN_FILE} - sudo virsh define ${DOMAIN_FILE} + create_compute ${COMPUTE_NODE} done sudo virt-manager