创建虚拟机 virt-install --name k8s01 --ram 4096 --vcpus=8 --disk path=/vm/vm/k8s01/os.img,size=100 --network bridge=br1 --cdrom /vm/iso/CentOS-7.4-x86_64-DVD-1708.iso --vnclisten=192.168.12.84 --vncport=6905 --vnc

克隆虚拟机 virt-clone --original S500001 --name S500000 -f /vm/vm/S500000/os.img --force

创建磁盘 qemu-img create -f qcow2 /vm/vm/S500001/data.img 50G

克隆虚拟机脚本编写:

 #!/bin/bash
#
# Description: This is sysytem optimization scripts about centos !
################################################################
# Author:tommy xiao
# QQ: 610000107
# Date: 2019.06.28
################################################################

desc="Please find the existing kvm name in 'virsh list --all'"

die (){
  echo >&2 $@
}
export LC_ALL=C
if [ -z "$2" ];then
	die
	echo -e "\033[40;33mUsage: /bin/bash add_kvm.sh new_kvm_name clone_kvm_name  ---- $desc \n\033[40;37m"
	exit 1
fi


# Variable settings
kvm_new=$1
kvm_template=$2
kvm_dir="/vm/vm/$kvm_new"
shut=`virsh list --all | grep -w $kvm_template | awk '{print $3}'`
kvm_all=`virsh list --all | grep "run\|shu\|pa"|awk '{print $2}'`

add_kvm()
{
if [ ! -d $kvm_dir ];then
	mkdir -p $kvm_dir
	virt-clone  --original $kvm_template --name $kvm_new -f $kvm_dir/os.img --force >>/dev/null 2>&1
	echo -e "\033[40;32mClone '$kvm_new' created successfully. You can use 'virsh start $kvm_new' to boot up.\n\033[40;37m"
	exit 2
else
	echo -e "\033[40;31m'$kvm_new' folder already exists\n\033[40;37m"
	exit 3
fi
}


for i in $kvm_all;do
	if [[ $i == $kvm_template ]];then
		if [ $shut == shut ];then
			add_kvm
		else
			echo -e "\033[40;33mvirsh shutdown $kvm_template\n\033[40;37m"
			virsh destroy $kvm_template >>/dev/null 2>&1
			add_kvm
		fi
	fi
done
echo -e "\033[40;31mTemplate '$kvm_template' could not be found. Check whether template '$kvm_template' exists by 'virsh list -- all'.\n\033[40;37m"