diff options
Diffstat (limited to 'vclone')
| -rwxr-xr-x | vclone | 35 |
1 files changed, 35 insertions, 0 deletions
@@ -0,0 +1,35 @@ +#!/bin/bash + +set -e + +if [[ $(/usr/bin/id -u) -ne 0 ]]; then + sudo $(realpath $0) + exit +fi + +select_base_vm() { + mapfile vms < <(virsh list --inactive --name) + + echo "All inactive VMs" >&2 + printf "%s\n" ${vms[@]} | nl >&2 + read -p "Index of base VM: " INDEX + echo ${vms[$INDEX-1]} +} + +die() { + echo $* + exit 1 +} + +BASE_IMAGE="$(select_base_vm)" +[ -z "$BASE_IMAGE" ] && die "No base image selected." + +read -p "Enter new image name: " NAME +[ -z "$NAME" ] && die "No new image name." + +echo "Cloning..." +virt-clone --quiet --original "$BASE_IMAGE" --auto-clone --name "$NAME" +echo "Cloning... Done." +echo "Preparing..." +virt-sysprep --quiet --domain "$NAME" --hostname "$NAME" +echo "Preparing... Done." |
