From f3b8cccbae77ab1811a42ff736b57761733fb836 Mon Sep 17 00:00:00 2001 From: Victor LABORIE Date: Tue, 15 May 2018 12:37:43 +0200 Subject: [PATCH] Better dry-run mode * Use drbdadm --dry-run instead of echoing command * Do not check if drbd volume is existant * Do not run evomaintenance --- add-vm.sh | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/add-vm.sh b/add-vm.sh index ccad977..d31be3b 100644 --- a/add-vm.sh +++ b/add-vm.sh @@ -168,23 +168,28 @@ cat << EOT >> $tmpResFile EOT # Create/Activate the new drbd resources. -dryRun install -m 600 $tmpResFile /etc/drbd.d/${vmName}.res -dryRun scp /etc/drbd.d/${vmName}.res ${slaveKVMIP}:/etc/drbd.d/ -dryRun drbdadm create-md "$vmName" -dryRun ssh $slaveKVMIP drbdadm create-md "$vmName" -($doDryRun) && drbdadm -d adjust "$vmName" -($doDryRun) || drbdadm adjust "$vmName" -($doDryRun) && ssh $slaveKVMIP drbdadm -d adjust "$vmName" -($doDryRun) || ssh $slaveKVMIP drbdadm adjust "$vmName" -dryRun drbdadm -- --overwrite-data-of-peer primary "$vmName" -sleep 5 && drbd-overview | tail -4 +drbdadm="$(command -v drbdadm)" +($doDryRun) && drbdadm="${drbdadm} --dry-run" -drbdDiskPath="/dev/drbd/by-res/${vmName}/0" -if ! [[ -b "$drbdDiskPath" ]]; then - warn "$drbdDiskPath not found! Continue? [y/N]" - read - if ! [[ "$REPLY" =~ (Y|y) ]]; then - exit 1 +($doDryRun) && trap "rm /etc/drbd.d/${vmName}.res && ssh ${slaveKVMIP} rm /etc/drbd.d/${vmName}.res" 0 +install -m 600 $tmpResFile /etc/drbd.d/${vmName}.res +scp /etc/drbd.d/${vmName}.res ${slaveKVMIP}:/etc/drbd.d/ +${drbdadm} create-md "$vmName" +ssh $slaveKVMIP ${drbdadm} create-md "$vmName" +${drbdadm} adjust "$vmName" +ssh $slaveKVMIP ${drbdadm} adjust "$vmName" +${drbdadm} -- --overwrite-data-of-peer primary "$vmName" + +if !($doDryRun); then + sleep 5 && drbd-overview | tail -4 + + drbdDiskPath="/dev/drbd/by-res/${vmName}/0" + if ! [[ -b "$drbdDiskPath" ]]; then + warn "$drbdDiskPath not found! Continue? [y/N]" + read + if ! [[ "$REPLY" =~ (Y|y) ]]; then + exit 1 + fi fi fi @@ -203,6 +208,8 @@ dryRun virt-install --connect=qemu:///system \ --os-variant=none \ --pxe -[ -x /usr/share/scripts/evomaintenance.sh ] && echo "Install VM ${vmName} (add-vm.sh)" | /usr/share/scripts/evomaintenance.sh +if [ -x /usr/share/scripts/evomaintenance.sh ]; then + ($doDryRun) || echo "Install VM ${vmName} (add-vm.sh)" | /usr/share/scripts/evomaintenance.sh +fi echo -e "\e[32mDone! Now you can install your VM with virt-manager.\e[39m"