kvm脚本之创建单个虚拟机

根据修改模板虚拟机的xml文件创建新的虚拟机

#!/bin/bash
#创建单个虚拟机(需要电脑中存在模板虚拟机)
single_initialize_define(){
	while true
	do
		read -p "请输入新虚拟机名称:" newname
		if [ $newname ];then
			break
		else
			echo "************"
			echo "请输入姓名!"
			echo "************"
		fi
	done

	while true
	do
		current_free_mem=`free -h|awk '/^Mem/{print $4}'|sed  -r 's/(.*).$/\1/'`
		mem_total=`free -h|awk '/^Mem/{print $2}'|sed  -r 's/(.*).$/\1/'`
		echo "目前本机内存总大小:${mem_total} G"
		echo "当前空闲内存大小为:${current_free_mem} MB"
		read -p "请输入新虚拟机内存大小(单位G):" newmemary
		if [ $newmemary ];then
			if [[ $newmemary < $mem_total ]];then
				break
			else
				echo "**********************************"
				echo "输入的数值必须小于当前内存总大小!"
				echo "**********************************"
			fi
		else
			echo "********************"
			echo "请输入新虚拟机内存!"
			echo "********************"
		fi
	done

	while true
	do
		core=`cat /proc/cpuinfo| grep "processor"| wc -l`
		echo "可用core个数:${core}"
		read -p "请输入新虚拟机处理器核数:" newcpu
		if [ $newcpu ];then
			if [ $newcpu -le $core ];then
				break
			else
				echo "******************************"
				echo "不能超过可用个数或者输入错误!"
				echo "******************************"
			fi	
		else
			echo "**************"
			echo "输入不能为空!"
			echo "**************"
		fi
	done
	uuid=`uuidgen`
	src_path=/mnt/lv2/centos7.0.qcow2 
	src_xml=/etc/libvirt/qemu/centos7.0.xml
	new_path=/mnt/lv1/${newname}.qcow2
	new_path_sed="\/mnt\/lv1\/${newname}.qcow2"
	new_xml=/etc/libvirt/qemu/${newname}.xml
}
#镜像、xml复制
copy_img(){
	cp $src_path $new_path
	cp $src_xml $new_xml
}
#修改xml文件
modification_xml(){
	sed -ri "s/(<name>).*(<\/name>)/\1${newname}\2/" $new_xml
	sed -ri "s/(<uuid>).*(<\/uuid>)/\1${uuid}\2/" $new_xml

	mem_kb=$(($newmemary*1024*1024))

	sed -ri "s/(<memory.*>).*(<\/memory>)/\1${mem_kb}\2/" $new_xml
	sed -ri "s/(<currentMemory.*>).*(<\/currentMemory>)/\1${mem_kb}\2/" $new_xml
	sed -ri "s/(<vcpu.*>).*(<\/vcpu>)/\1${newcpu}\2/" $new_xml
	sed -ri "s/(<source file=').*('\/>)/\1${new_path_sed}\2/" $new_xml

	mac_addr=`openssl rand -hex 3 | sed -r 's/..\B/&:/g'`

	sed -ri "s/(<mac address='..:..:..:).*('\/>)/\1${mac_addr}\2/" $new_xml	
	
}
#运行
single_initialize_define
copy_img
modification_xml
virsh define $new_xml
#------------------------------------------------------------------------------------

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值