blob: cf3fdaff1b3e8945170f4376fdd8acc9b4549012 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#!/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"
virsh desc --new-desc '' "$NAME"
virsh desc --title --new-desc "clone/$NAME" "$NAME"
echo "Cloning... Done."
echo "Preparing..."
virt-sysprep --quiet --domain "$NAME" --hostname "$NAME"
echo "Preparing... Done."
|