From b4781ad203c1905894f53f9ef931ae60dfa1bc70 Mon Sep 17 00:00:00 2001 From: Tim Rozet Date: Wed, 28 Oct 2015 15:17:20 -0400 Subject: Adds HA support to deploy Defaults the deploy to use HA and adds new param for using non-HA. JIRA: APEX-40 Change-Id: Ib3fc8b31ea13a3c590ceaa875197b4b9c1bb55a1 Signed-off-by: Tim Rozet --- build/Makefile | 10 ++++++---- build/instack.sh | 31 ++++++++++++++++++------------- build/opnfv-apex.spec | 6 ++---- ci/clean.sh | 12 ++++++------ ci/deploy.sh | 21 ++++++++++++++++++--- 5 files changed, 50 insertions(+), 30 deletions(-) diff --git a/build/Makefile b/build/Makefile index 2c7e3e2e..fa89ee89 100644 --- a/build/Makefile +++ b/build/Makefile @@ -101,12 +101,11 @@ rpm: pushd ../ && git archive --format=tar --prefix=opnfv-apex-$(RPMVERS)/ HEAD > build/opnfv-apex.tar tar -u --xform="s:instack.qcow2:opnfv-apex-$(RPMVERS)/build/instack.qcow2:" --file=opnfv-apex.tar instack.qcow2 tar -u --xform="s:instack.xml:opnfv-apex-$(RPMVERS)/build/instack.xml:" --file=opnfv-apex.tar instack.xml - qemu-img create -f qcow2 baremetalbrbm_0.qcow2 40G - tar -u --xform="s:baremetalbrbm_0.qcow2:opnfv-apex-$(RPMVERS)/build/baremetalbrbm_0.qcow2:" --file=opnfv-apex.tar baremetalbrbm_0.qcow2 tar -u --xform="s:baremetalbrbm_0.xml:opnfv-apex-$(RPMVERS)/build/baremetalbrbm_0.xml:" --file=opnfv-apex.tar baremetalbrbm_0.xml - qemu-img create -f qcow2 baremetalbrbm_1.qcow2 40G - tar -u --xform="s:baremetalbrbm_1.qcow2:opnfv-apex-$(RPMVERS)/build/baremetalbrbm_1.qcow2:" --file=opnfv-apex.tar baremetalbrbm_1.qcow2 tar -u --xform="s:baremetalbrbm_1.xml:opnfv-apex-$(RPMVERS)/build/baremetalbrbm_1.xml:" --file=opnfv-apex.tar baremetalbrbm_1.xml + tar -u --xform="s:baremetalbrbm_2.xml:opnfv-apex-$(RPMVERS)/build/baremetalbrbm_2.xml:" --file=opnfv-apex.tar baremetalbrbm_2.xml + tar -u --xform="s:baremetalbrbm_3.xml:opnfv-apex-$(RPMVERS)/build/baremetalbrbm_3.xml:" --file=opnfv-apex.tar baremetalbrbm_3.xml + tar -u --xform="s:baremetalbrbm_4.xml:opnfv-apex-$(RPMVERS)/build/baremetalbrbm_4.xml:" --file=opnfv-apex.tar baremetalbrbm_4.xml tar -u --xform="s:brbm-net.xml:opnfv-apex-$(RPMVERS)/build/brbm-net.xml:" --file=opnfv-apex.tar brbm-net.xml tar -u --xform="s:default-pool.xml:opnfv-apex-$(RPMVERS)/build/default-pool.xml:" --file=opnfv-apex.tar default-pool.xml tar -u --xform="s:instackenv-virt.json:opnfv-apex-$(RPMVERS)/build/instackenv-virt.json:" --file=opnfv-apex.tar instackenv-virt.json @@ -132,6 +131,9 @@ instack-clean: rm -f instackenv-virt.json rm -f baremetalbrbm_0.xml rm -f baremetalbrbm_1.xml + rm -f baremetalbrbm_2.xml + rm -f baremetalbrbm_3.xml + rm -f baremetalbrbm_4.xml rm -f instack.xml rm -f instack.qcow2 diff --git a/build/instack.sh b/build/instack.sh index c19ab0fd..79a99f83 100755 --- a/build/instack.sh +++ b/build/instack.sh @@ -2,6 +2,7 @@ set -e declare -i CNT +vm_index=4 RDO_RELEASE=kilo SSH_OPTIONS=(-o StrictHostKeyChecking=no -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null) @@ -80,11 +81,11 @@ ssh -T ${SSH_OPTIONS[@]} stack@localhost < /dev/null || echo -n '' virsh undefine instack --remove-all-storage 2> /dev/null || echo -n '' -virsh destroy baremetalbrbm_0 2> /dev/null || echo -n '' -virsh undefine baremetalbrbm_0 --remove-all-storage 2> /dev/null || echo -n '' -virsh destroy baremetalbrbm_1 2> /dev/null || echo -n '' -virsh undefine baremetalbrbm_1 --remove-all-storage 2> /dev/null || echo -n '' -NODE_CPU=2 NODE_MEM=8192 instack-virt-setup +for i in \$(seq 0 $vm_index); do + virsh destroy baremetalbrbm_\$i 2> /dev/null || echo -n '' + virsh undefine baremetalbrbm_\$i --remove-all-storage 2> /dev/null || echo -n '' +done +NODE_COUNT=5 NODE_CPU=2 NODE_MEM=8192 instack-virt-setup EOI # let dhcp happen so we can get the ip @@ -150,8 +151,10 @@ if virsh list | grep instack > /dev/null; then fi echo $'\nGenerating libvirt configuration' -virsh dumpxml baremetalbrbm_0 > baremetalbrbm_0.xml -virsh dumpxml baremetalbrbm_1 > baremetalbrbm_1.xml +for i in \$(seq 0 $vm_index); do + virsh dumpxml baremetalbrbm_\$i > baremetalbrbm_\$i.xml +done + virsh dumpxml instack > instack.xml #virsh vol-dumpxml instack.qcow2 --pool default > instack.qcow2.xml virsh net-dumpxml brbm > brbm-net.xml @@ -160,8 +163,10 @@ EOI # copy off the instack artifacts echo "Copying instack files to build directory" -scp ${SSH_OPTIONS[@]} stack@localhost:baremetalbrbm_0.xml . -scp ${SSH_OPTIONS[@]} stack@localhost:baremetalbrbm_1.xml . +for i in $(seq 0 $vm_index); do + scp ${SSH_OPTIONS[@]} stack@localhost:baremetalbrbm_${i}.xml . +done + scp ${SSH_OPTIONS[@]} stack@localhost:instack.xml . scp ${SSH_OPTIONS[@]} stack@localhost:brbm-net.xml . scp ${SSH_OPTIONS[@]} stack@localhost:default-pool.xml . @@ -192,9 +197,9 @@ ssh -T ${SSH_OPTIONS[@]} stack@localhost < /dev/null || echo -n '' virsh undefine instack --remove-all-storage 2> /dev/null || echo -n '' -virsh destroy baremetalbrbm_0 2> /dev/null || echo -n '' -virsh undefine baremetalbrbm_0 --remove-all-storage 2> /dev/null || echo -n '' -virsh destroy baremetalbrbm_1 2> /dev/null || echo -n '' -virsh undefine baremetalbrbm_1 --remove-all-storage 2> /dev/null || echo -n '' +for i in \$(seq 0 $vm_index); do + virsh destroy baremetalbrbm_\$i 2> /dev/null || echo -n '' + virsh undefine baremetalbrbm_\$i --remove-all-storage 2> /dev/null || echo -n '' +done EOI diff --git a/build/opnfv-apex.spec b/build/opnfv-apex.spec index 5173565c..641c37c7 100644 --- a/build/opnfv-apex.spec +++ b/build/opnfv-apex.spec @@ -32,8 +32,7 @@ mkdir -p %{buildroot}%{_var}/opt/opnfv/stack/ cp build/instack.qcow2 %{buildroot}%{_var}/opt/opnfv/stack/ cp build/instack.xml %{buildroot}%{_var}/opt/opnfv/ -cp build/baremetalbrbm_0.xml %{buildroot}%{_var}/opt/opnfv/ -cp build/baremetalbrbm_1.xml %{buildroot}%{_var}/opt/opnfv/ +cp build/baremetalbrbm_*.xml %{buildroot}%{_var}/opt/opnfv/ cp build/brbm-net.xml %{buildroot}%{_var}/opt/opnfv/ cp build/default-pool.xml %{buildroot}%{_var}/opt/opnfv/ @@ -52,8 +51,7 @@ cp build/stack/overcloud-full.vmlinuz %{buildroot}%{_var}/opt/opnfv/stack/ %{_bindir}/opnfv-clean %{_var}/opt/opnfv/stack/instack.qcow2 %{_var}/opt/opnfv/instack.xml -%{_var}/opt/opnfv/baremetalbrbm_0.xml -%{_var}/opt/opnfv/baremetalbrbm_1.xml +%{_var}/opt/opnfv/baremetalbrbm_*.xml %{_var}/opt/opnfv/brbm-net.xml %{_var}/opt/opnfv/default-pool.xml %{_var}/opt/opnfv/instackenv-virt.json diff --git a/ci/clean.sh b/ci/clean.sh index d9a02e43..7fad2ef1 100755 --- a/ci/clean.sh +++ b/ci/clean.sh @@ -5,13 +5,13 @@ # #Uses Vagrant and VirtualBox # +vm_index=4 virsh destroy instack 2> /dev/null || echo -n '' virsh undefine instack --remove-all-storage 2> /dev/null || echo -n '' -virsh destroy baremetalbrbm_0 2> /dev/null || echo -n '' -virsh undefine baremetalbrbm_0 --remove-all-storage 2> /dev/null || echo -n '' -virsh destroy baremetalbrbm_1 2> /dev/null || echo -n '' -virsh undefine baremetalbrbm_1 --remove-all-storage 2> /dev/null || echo -n '' rm -f /var/lib/libvirt/images/instack.qcow2 2> /dev/null -rm -f /var/lib/libvirt/images/baremetalbrbm_0.qcow2 2> /dev/null -rm -f /var/lib/libvirt/images/baremetalbrbm_1.qcow2 2> /dev/null +for i in $(seq 0 vm_index); do + virsh destroy baremetalbrbm_$i 2> /dev/null || echo -n '' + virsh undefine baremetalbrbm_$i --remove-all-storage 2> /dev/null || echo -n '' + rm -f /var/lib/libvirt/images/baremetalbrbm_${i}.qcow2 2> /dev/null +done diff --git a/ci/deploy.sh b/ci/deploy.sh index 482c1bff..c707e73d 100755 --- a/ci/deploy.sh +++ b/ci/deploy.sh @@ -24,7 +24,7 @@ set -e #red=`tput setaf 1` #green=`tput setaf 2` -vm_index=1 +vm_index=4 declare -i CNT declare UNDERCLOUD @@ -168,9 +168,14 @@ function setup_instack_vm { ssh -T ${SSH_OPTIONS[@]} "root@$UNDERCLOUD" "restorecon -r /home/stack" } +##Create virtual nodes in virsh +##params: none function setup_virtual_baremetal { for i in $(seq 0 $vm_index); do if ! virsh list --all | grep baremetalbrbm_${i} > /dev/null; then + if [ ! -e $CONFIG/baremetalbrbm_${i}.xml ]; then + define_virtual_node baremetalbrbm_${i} + fi virsh define $CONFIG/baremetalbrbm_${i}.xml else echo "Found Baremetal ${i} VM, using existing VM" @@ -180,7 +185,7 @@ function setup_virtual_baremetal { } ##Copy over the glance images and instack json file -##params: none +##params: none function copy_materials { scp ${SSH_OPTIONS[@]} $RESOURCES/deploy-ramdisk-ironic.initramfs "stack@$UNDERCLOUD": @@ -232,8 +237,14 @@ ssh -T ${SSH_OPTIONS[@]} "root@$UNDERCLOUD" "cat /home/stack/.ssh/id_rsa.pub" >> } ##preping it for deployment and launch the deploy -##params: none +##params: none function undercloud_prep_overcloud_deploy { + # check if HA is enabled + if [ "$vm_index" -gt 1 ]; then + DEPLOY_OPTIONS+=" --control-scale 3 --compute-scale 2" + DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/puppet-pacemaker.yaml" + DEPLOY_OPTIONS+=" --ntp-server pool.ntp.org" + fi ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <