diff options
author | Lars Wirzenius <liw@liw.fi> | 2020-10-04 15:47:27 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2020-10-04 15:47:27 +0300 |
commit | 85c633d8861146604ae540acd5828afdc2326590 (patch) | |
tree | f06f844ffc7639031bbb59207b86e64eb7a2a511 | |
parent | 7f531f989ca154a2dc311f783e9c7d04c112ff38 (diff) | |
download | ick-contractor-85c633d8861146604ae540acd5828afdc2326590.tar.gz |
create-vm works
-rwxr-xr-x | create-vm | 48 |
1 files changed, 46 insertions, 2 deletions
@@ -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" } |