**This is for VM prep for cloning** *Prep* Install the base OS. Install all required apps * openssh-server Install all required updates Shutdown guest * virsh shotdown $guest-vm On the VM Host server make sure you have libgustsfs-tools ``` apt list --installed |grep -i libguestfs-tools ``` if its not there, install it. ``` sudo apt install libguestfs-tools ``` This step strips stuff that must be unique per VM (machine-id, SSH keys, etc.) from the *template*. ``` sudo virt-sysprep -d $guest-vm \ --operations machine-id,ssh-hostkeys,udev-persistent-net,logfiles,tmp-files ``` Your output should be similiar to the following: ``` sudo virt-sysprep -d Debian-Base --operations machine-id,ssh-hostkeys,udev-persistent-net,logfiles,tmp-files [ 0.0] Examining the guest ... [ 17.4] Performing "logfiles" ... [ 17.6] Performing "machine-id" ... [ 17.6] Performing "ssh-hostkeys" ... [ 17.6] Performing "tmp-files" ... [ 17.6] Performing "udev-persistent-net" ... ``` The base is now ready to go. **Create Clone** sudo virt-clone --original $guest-vm \ --name guest-01 \ --auto-clone example ``` sudo virt-clone --original Debian-Base \ --name Node01 \ --auto-clone Allocating 'Node01.qcow2' | 1.6 GB 00:00:03 ... Clone 'Node01' created successfully ``` Confirm your clones have been made ``` virsh list --all Id Name State --------------------------------- 1 downloads running - Debian-Base shut off - k8s-node1 shut off - k8s-node2 shut off - k8s-node3 shut off - k8s-node4 shut off - k8s-node5 shut off - Node01 shut off - Node02 shut off - Node03 shut off - Node04 shut off - Node05 shut off - Ubuntu_Default shut off ```