Better dry-run mode

* Use drbdadm --dry-run instead of echoing command
* Do not check if drbd volume is existant
* Do not run evomaintenance
This commit is contained in:
Victor LABORIE 2018-05-15 12:37:43 +02:00
parent ea4884c1b4
commit f3b8cccbae
1 changed files with 24 additions and 17 deletions

View File

@ -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"