[Linux](脚本)创建虚拟机及修改相关参数

#!/bin/bash
#AUTHOR:ZHD
#DATE:2019-06-05
#FUNCTION:快速创建虚拟机及修改相关参数
#VERSION:1.0

clear
function menu {
cat<<EOF
********************menu********************
    (1)快速创建虚拟机
    (2)现有虚拟机的硬盘扩容
	(3)现有虚拟机的MEMORY修改(待完善)
	(4)现有虚拟机的CPU修改(待完善)
	(5)exit
*************************************************
EOF
}

function choice {
	read -p "请选择标号:" number
}

######################创建虚拟机##########################
function create_virtual {
	backfile=/var/lib/libvirt/images/.node_base.xml #后端盘配置文件
	imgfile=/var/lib/libvirt/images/ #磁盘镜像文件位置
	read -p "请输入虚拟机名称:" virname
	read -p "请输入硬盘大小(G):"  disksize
	if [ -f $backfile ];then
		echo -e "\033[32m后端盘文件存在\033[0m"
	else
		echo -e "\033[31m后端盘文件不存在\033[0m"
		exit
	fi
	cp $backfile /etc/libvirt/qemu/$virname.xml  #虚拟机名称
	cd $imgfile
	qemu-img create -f qcow2 -b .node_base.qcow2 $virname.img $disksize #定义硬盘大小
	sed -i "2s/node_base/$virname/" /etc/libvirt/qemu/$virname.xml #修改虚拟机名称
	sed -i "26s/node_base/$virname/"  /etc/libvirt/qemu/$virname.xml #修改镜像文件路径
	virsh  define  /etc/libvirt/qemu/$virname.xml  #根据xx.xml文件创建虚拟机
	virsh  start  $virname  #启动虚拟机
}                                                                                                                                                     
#######################硬盘扩容##############################
#查看现有虚拟机硬盘信息
function mod_disk {
	read -p "输入你想修改的虚拟机名:" virname
	disk_mess=$(qemu-img info /var/lib/libvirt/images/$virname.img | awk '/virtual/{print $3}')
	echo -e '\033[32m现有硬盘大小是:\033[0m' $disk_mess
	read -p "输入您修改后的大小:" disk_size
	soupa=$(virsh domblklist $virname | awk '/vda/{print $2}')
	virsh blockresize --path $soupa --size $disk_size   $virname
expect << EOF
	spawn virsh console $virname
	expect " 换码符为 ^]"    {send "\r"}
	expect "login:"  {send "root\r"}
	expect "Password:"  {send "a\r"}
	expect "#"  {send "LANG=C\r"}
	expect "#"  {send "growpart /dev/vda 1\r"}
	expect "#"  {send "xfs_growfs /\r"}
	expect "#"    {send "exit\r"}	
EOF
}
####################现有虚拟机的MEMORY修改##############
function mod_memory {
	read -p "请输入你想修改的虚拟机名称:" virname
	virsh shutdown $virname
	sleep 1
	a=$(sed -n '/<memory/p' /etc/libvirt/qemu/$virname.xml)
	memory=$(echo ${a:21:7})
	memory1=$(sed -n '/<currentMemory/p' /etc/libvirt/qemu/$virname.xml) | echo ${q:28:7}
	echo -e '\033[32m现在虚拟机内存是:\033[0m' $memory
	read -p "请输入修改后的内存大小(byte):" new_memory
	sed -i  "/<memory/ s/1488282/$new_memory/" /etc/libvirt/qemu/$virname.xml
	sed -i  "/<currentMemory/ s/1488282/$new_memory/" /etc/libvirt/qemu/$virname.xml
	virsh start $virname
}
###################现有虚拟机的CPU修改##################
function mod_cpu {
	read -p "请输入你想修改的虚拟机名称:" virname
	a=$(sed -n '/<vcpu/p' /etc/libvirt/qemu/$virname.xml)
	old_cpu=$(echo ${a:27:1})
	echo -e '\033[32m现在CPU是:\033[0m' $old_cpu核
	read -p "请输入你想修改级核CPU:" new_cpu
	sed -i  "/<vcpu/ s/4/$new_cpu/" /etc/libvirt/qemu/$virname.xml
	virsh shutdown $virname
	sleep 5
        virsh start $virname
}

#####################
while :
do
menu
choice
case $number in
1)
	create_virtual
	;;
2)
	mod_disk
	;;
3)
	mod_memory
	;;
4)
	mod_cpu
	;;
5)
	exit
	;;
*)
	echo -e '\033[31msorry!!\033[0m'
	;;
esac
done








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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

河 静

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值