kvm安装虚拟机基础脚本

版权声明:请随意转载 https://blog.csdn.net/cheng1804/article/details/82191310

 只写了少部分功能,需提前准备centos7.0-2.xml.bak和centos7.0-2.qcow2文件,用手动装一个虚拟机就会生成这两个文件做模板,其他功能自己看着加吧。

#!/usr/bin/env bash
conf=/etc/libvirt/qemu
img=/var/lib/libvirt/images
user_defined() {
	while :
	do
		read -p "请输入虚拟机名称: " name
		cp $conf/centos7.0-2.xml.bak $conf/"$name".xml
		qemu-img create -f qcow2 -b $img/centos7.0-2.qcow2 $img/"$name".qcow2 >/dev/null
		sed -ri "/<name>/c<name>$name</name>" $conf/"$name".xml
		read -p "是否修改默认CPU个数(yes/no): " cho
		if [[ $cho == "yes" ]];then
			read -p "请输入CPU个数: " num
			sed -ri "/<vcpu placement/c<vcpu placement='static'>$num</vcpu>" $conf/"$name".xml
		fi
		read -p "是否修改默认内存(yes/no): " cho1
		if [[ $cho1 == "yes" ]];then
			read -p "请输入内存值(kb): " mem
			sed -ri "/<memory unit='KiB/c<memory unit='KiB'>$mem</memory>" $conf/"$name".xml
		fi
		sed -ri "/<uuid>/c<uuid>`uuidgen`</uuid>" $conf/"$name".xml
		sed -ri "/<source file/c<source file='$img/"$name".qcow2'/>" $conf/"$name".xml
		mac=`openssl rand -hex 3 | sed -r 's/..\B/&:/g'`
		sed -ri "/<mac address/c<mac address='52:54:00:$mac'/>" $conf/"$name".xml
		virsh define $conf/"$name".xml
		read -p "是否继续创建(yes/no): " cho2
		if [[ $cho2 == "no" ]];then
			break
		fi
	done
}
default() {
	for i in {1..5}
	do
		cp $conf/centos7.0-2.xml.bak $conf/vm"$i".xml
		qemu-img create -f qcow2 -b $img/centos7.0-2.qcow2 $img/vm"$i".qcow2 >/dev/null
		sed -ri "/<name>/c<name>vm$i</name>" $conf/vm"$i".xml
		sed -ri "/<uuid>/c<uuid>`uuidgen`</uuid>" $conf/vm"$i".xml
		sed -ri "/<source file/c<source file='$img/vm"$i".qcow2'/>" $conf/vm"$i".xml
		mac=`openssl rand -hex 3 | sed -r 's/..\B/&:/g'`
		sed -ri "/<mac address/c<mac address='52:54:00:$mac'/>" $conf/vm"$i".xml
		virsh define $conf/vm"$i".xml
	done
}
del_virt() {
	run_vm=$(virsh list --all |awk '/[0-9]/{print $2}')
	sleep_vm=`virsh list --all|grep ' -'|awk '{print $2}'`
	for i in $run_vm
	do
		virsh destroy $i &>/dev/null
		virsh undefine $i &>/dev/null
		rm -rf $conf/"$i".xml
		rm -rf $img/"$i"*
	done
	for i in $sleep_vm
	do
		virsh undefine $i &>/dev/null
		rm -rf $conf/"$i".xml
		rm -rf $img/"$i"*
	done
}
cat <<-EOF
----------------------------------------
	1.创建自定义配置单个虚拟机
	2.批量创建默认配置虚拟机
	3.删除虚拟机
	q.exit
----------------------------------------
EOF
while :
do
	read -p "please input your choice: " choice
	case $choice in
		1)
			user_defined
			;;
		2)
			default
			;;
		3)
			del_virt
			;;
		q)
			exit
			;;
		*)
			echo "error! please input right num"
	esac
done

猜你喜欢

转载自blog.csdn.net/cheng1804/article/details/82191310