diff options
| author | Anton Bobov <abobov@gmail.com> | 2018-01-18 21:07:55 +0500 |
|---|---|---|
| committer | Anton Bobov <abobov@gmail.com> | 2018-01-18 21:07:55 +0500 |
| commit | d9bb1632d27d65ce6c4ddf2758f8d51b9d37ccfb (patch) | |
| tree | 16f66d723e4b4c3834cc46ccf3b3b31b57eab0ad | |
| parent | 941a793cbcf906725eec549a60eef3b3b3e80980 (diff) | |
[kvm] Simple kvm image clone script.
| -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." |
