A path to an ISO image can be configured to boot the VM on it.

This commit is contained in:
Jérémy Lecour 2018-09-03 17:28:00 +02:00 committed by Jérémy Lecour
parent 9b2e9889cc
commit 4dc0b423b2

7
add-vm
View file

@ -36,6 +36,7 @@ disks="${disks:-}"
[ -n "${disks}" ] || disks=("ssd" "hdd") [ -n "${disks}" ] || disks=("ssd" "hdd")
bridgeName="${bridgeName:-br0}" bridgeName="${bridgeName:-br0}"
doDryRun=${doDryRun:-false} doDryRun=${doDryRun:-false}
isoImagePath="${isoImagePath:-}"
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??
@ -198,6 +199,8 @@ fi
virtHome="" virtHome=""
[ "$volhomeDisk" != "none" ] && virtHome="--disk path=/dev/drbd/by-disk/${volhomeDisk}/${vmName}_home,bus=virtio,io=threads,cache=none,format=raw" [ "$volhomeDisk" != "none" ] && virtHome="--disk path=/dev/drbd/by-disk/${volhomeDisk}/${vmName}_home,bus=virtio,io=threads,cache=none,format=raw"
bootMode="--pxe"
[ -f "$isoImagePath" ] && bootMode="--cdrom=$isoImagePath"
dryRun virt-install --connect=qemu:///system \ dryRun virt-install --connect=qemu:///system \
--name=${vmName} \ --name=${vmName} \
@ -205,11 +208,11 @@ dryRun virt-install --connect=qemu:///system \
--memory=${memory} \ --memory=${memory} \
--disk path=/dev/drbd/by-disk/${volrootDisk}/${vmName}_root,bus=virtio,io=threads,cache=none,format=raw \ --disk path=/dev/drbd/by-disk/${volrootDisk}/${vmName}_root,bus=virtio,io=threads,cache=none,format=raw \
$virtHome \ $virtHome \
$bootMode \
--network=bridge:${bridgeName},model=virtio \ --network=bridge:${bridgeName},model=virtio \
--noautoconsole --graphics vnc,listen=127.0.0.1,keymap=fr \ --noautoconsole --graphics vnc,listen=127.0.0.1,keymap=fr \
--rng /dev/random \ --rng /dev/random \
--os-variant=none \ --os-variant=none
--pxe
if [ -x /usr/share/scripts/evomaintenance.sh ]; then if [ -x /usr/share/scripts/evomaintenance.sh ]; then
($doDryRun) || echo "Install VM ${vmName} (add-vm.sh)" | /usr/share/scripts/evomaintenance.sh ($doDryRun) || echo "Install VM ${vmName} (add-vm.sh)" | /usr/share/scripts/evomaintenance.sh