Disks and dryn-run mode can be defined in config file
This commit is contained in:
parent
f3b8cccbae
commit
592f00c047
19
add-vm.sh
19
add-vm.sh
|
@ -29,11 +29,11 @@ warn() {
|
||||||
echo -ne "\e[33m${1}\e[39m\n"
|
echo -ne "\e[33m${1}\e[39m\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
masterKVMIP=""
|
|
||||||
slaveKVMIP=""
|
|
||||||
[ -f "/etc/evolinux/add-vm.cnf" ] && . /etc/evolinux/add-vm.cnf
|
[ -f "/etc/evolinux/add-vm.cnf" ] && . /etc/evolinux/add-vm.cnf
|
||||||
[ -z "$masterKVMIP" ] && critical "You must define masterKVMIP in /etc/evolinux/add-vm.cnf!!"
|
masterKVMIP="${masterKVMIP:-127.0.0.1}"
|
||||||
[ -z "$slaveKVMIP" ] && critical "You must define slaveKVMIP in /etc/evolinux/add-vm.cnf!!"
|
slaveKVMIP="${slaveKVMIP:-}"
|
||||||
|
disks="${disks:-(ssd hdd)}"
|
||||||
|
doDryRun=${doDryRun:-false}
|
||||||
|
|
||||||
export DIALOGOUT=$(mktemp --tmpdir=/tmp addvm.XXX)
|
export DIALOGOUT=$(mktemp --tmpdir=/tmp addvm.XXX)
|
||||||
# TODO: How to replace _ with a space??
|
# TODO: How to replace _ with a space??
|
||||||
|
@ -44,7 +44,6 @@ tmpResFile=$(mktemp --tmpdir=/tmp addvm.XXX)
|
||||||
xmlVM=$(mktemp --tmpdir=/tmp addvm.XXX)
|
xmlVM=$(mktemp --tmpdir=/tmp addvm.XXX)
|
||||||
masterKVM="$(hostname -s)"
|
masterKVM="$(hostname -s)"
|
||||||
slaveKVM="$(ssh $slaveKVMIP hostname -s)"
|
slaveKVM="$(ssh $slaveKVMIP hostname -s)"
|
||||||
doDryRun=false
|
|
||||||
|
|
||||||
# Exit & Cleanup function.
|
# Exit & Cleanup function.
|
||||||
clean() {
|
clean() {
|
||||||
|
@ -62,8 +61,8 @@ $DIALOG --hfile $HELPFILE --title "KVM Config" --form "Set the right config. "\
|
||||||
"If you do not want a type of disk, type none." 0 0 0 \
|
"If you do not want a type of disk, type none." 0 0 0 \
|
||||||
"vCPU" 1 1 "2" 1 10 20 0 \
|
"vCPU" 1 1 "2" 1 10 20 0 \
|
||||||
"memory" 2 1 "4G" 2 10 20 0 \
|
"memory" 2 1 "4G" 2 10 20 0 \
|
||||||
"volroot" 3 1 "ssd-20G" 3 10 20 0 \
|
"volroot" 3 1 "${disks[0]}-20G" 3 10 20 0 \
|
||||||
"volhome" 4 1 "hdd-40G" 4 10 20 0 \
|
"volhome" 4 1 "${disks[1]}-40G" 4 10 20 0 \
|
||||||
"vmName" 5 1 "" 5 10 20 0 \
|
"vmName" 5 1 "" 5 10 20 0 \
|
||||||
2>$DIALOGOUT
|
2>$DIALOGOUT
|
||||||
vCPU=$(sed 1'q;d' $DIALOGOUT)
|
vCPU=$(sed 1'q;d' $DIALOGOUT)
|
||||||
|
@ -82,21 +81,23 @@ if [[ $? -ne 0 ]]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! [[ "$volroot" =~ (ssd|hdd)-([0-9]+G) ]]; then
|
if ! [[ "$volroot" =~ ([^-]+)-([0-9]+G) ]]; then
|
||||||
critical "No volume for root device (/dev/vda)?!!"
|
critical "No volume for root device (/dev/vda)?!!"
|
||||||
else
|
else
|
||||||
volrootDisk="${BASH_REMATCH[1]}"
|
volrootDisk="${BASH_REMATCH[1]}"
|
||||||
volrootSize="${BASH_REMATCH[2]}"
|
volrootSize="${BASH_REMATCH[2]}"
|
||||||
|
[[ " ${disks[*]} " == *"$volrootDisk"* ]] || critical "Unknow disk $volrootDisk !"
|
||||||
dryRun lvcreate -L$volrootSize -n${vmName}_root $volrootDisk
|
dryRun lvcreate -L$volrootSize -n${vmName}_root $volrootDisk
|
||||||
dryRun ssh $slaveKVMIP lvcreate -L$volrootSize -n${vmName}_root $volrootDisk
|
dryRun ssh $slaveKVMIP lvcreate -L$volrootSize -n${vmName}_root $volrootDisk
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! [[ "$volhome" =~ (ssd|hdd)-([0-9]+G) ]]; then
|
if ! [[ "$volhome" =~ ([^-]+)-([0-9]+G) ]]; then
|
||||||
warn "No volume for home device (/dev/vdb)... Okay, not doing it!"
|
warn "No volume for home device (/dev/vdb)... Okay, not doing it!"
|
||||||
volhomeDisk="none"
|
volhomeDisk="none"
|
||||||
else
|
else
|
||||||
volhomeDisk="${BASH_REMATCH[1]}"
|
volhomeDisk="${BASH_REMATCH[1]}"
|
||||||
volhomeSize="${BASH_REMATCH[2]}"
|
volhomeSize="${BASH_REMATCH[2]}"
|
||||||
|
[[ " ${disks[*]} " == *"$volhomeDisk"* ]] || critical "Unknow disk $volhomeDisk !"
|
||||||
dryRun lvcreate -L$volhomeSize -n${vmName}_home $volhomeDisk
|
dryRun lvcreate -L$volhomeSize -n${vmName}_home $volhomeDisk
|
||||||
dryRun ssh $slaveKVMIP lvcreate -L$volhomeSize -n${vmName}_home $volhomeDisk
|
dryRun ssh $slaveKVMIP lvcreate -L$volhomeSize -n${vmName}_home $volhomeDisk
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in a new issue