From 85c633d8861146604ae540acd5828afdc2326590 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sun, 4 Oct 2020 15:47:27 +0300 Subject: create-vm works --- create-vm | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/create-vm b/create-vm index f79b0b1..9fa374b 100755 --- a/create-vm +++ b/create-vm @@ -25,11 +25,55 @@ EOF } +create_vm() +{ + local name="$1" + local memory="$2" + local image="$3" + local iso="$4" + + virt-install \ + --name="$name" \ + --memory "$memory" \ + --disk="path=$image,cache=none" \ + --disk="path=$iso,readonly=on" \ + --network=network=default \ + --quiet \ + --connect qemu:///system \ + --cpu=host-passthrough \ + --os-variant=debian9 \ + --import \ + --graphics=spice \ + --noautoconsole +} + +wait_for_ssh() +{ + local host="$1" + while ! nc -w 1 "$host" 22 < /dev/null > /dev/null + do + sleep 5 + done +} + + main() { - local vm="$1" - local pubkey="$(cat "$2")" + local base="$1" + local vm="$2" + local memory="$3" + local img="$4" + local size="$5" + local pubkey="$(cat "$6")" + + local iso="$vm.iso" + cloud_init_iso "$vm.iso" "$vm" "$pubkey" + cp "$base" "$img" + qemu-img resize -q "$img" "$size" + create_vm "$vm" "$memory" "$img" "$iso" + wait_for_ssh "$vm" + rm -f "$iso" } -- cgit v1.2.1