#!/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
[Linux](脚本)创建虚拟机及修改相关参数
最新推荐文章于 2022-11-07 21:32:58 发布