Domain Creation

A domain is really the virtual machine. Creating a new domain is just one simple command. virt-install. It takes a lot of parameters though, so I created a script to make domain creation a bit easier.

NAME="stretch-template"
RAM="1024"
LVM_SIZE="4G"
LVM_GROUP="vg2"
GRAPHICS_PROTOCOL="spice" #spice, vnc
OS="debian9"
MEDIA="/mnt/media/debian/stretch/debian-9.1.0-amd64-netinst.iso"

if [ $# -eq 0 ]
then
        echo "${0}: domain-name"
else
        NAME=${1}
fi
LVM_NAME="kvm_${NAME}_vda"

if [ ! -e /dev/${LVM_GROUP}/${LVM_NAME} ]
then

        # create lvm partition
        lvcreate --size ${LVM_SIZE} --name ${LVM_NAME} ${LVM_GROUP}

        # create the virtual machine
        virt-install --name ${NAME} --memory ${RAM} --disk /dev/${LVM_GROUP}/${LVM_NAME},bus=virtio,format=raw --os-variant ${OS} --network bridge=br0,model=virtio --cdrom ${MEDIA} --graphics ${GRAPHICS_PROTOCOL},listen=192.168.1.33,password=${NAME} --noautoconsole --virt-type kvm
else
        echo "${0}: refusing to overwrite existing domain";
fi