#!/usr/bin/env bash cat<<eof
1 新建虚拟机
2 删除虚拟机
3 给虚拟机增加内存
4 给虚拟机增加硬盘
5 列出目前正在运行的虚拟机
6 列出所有的虚拟机
7 列出指定的虚拟机的快照
8 给指定的虚拟机做快照
eof
creat_virthost(){
def_name="centos$(date +%Y%m%d%H%M%S)"
def_mem=1
def_cpu=1
echo"这是创建虚拟机的函数"read -p "请输入新虚机名称(默认centos+date):" newname
read -p "请输入新虚机内存大小(G)(默认1):" newmem
read -p "请输入新虚机cpu个数(默认1):" newcpu
newname=${newname:-$def_name}
newmem=${newmem:-$def_mem}
newcpu=${newcpu:-$def_cpu}if[[!$newmem=~ ^[0-9]+$ ]]thenecho"格式不正确,正确示例:1"exitfiif[[!$newcpu=~ ^[0-9]+$ ]]thenecho"格式不正确,正确示例:1"exitfi
sourceimage=/var/lib/libvirt/images/vmmodel.img
sourcexml=/etc/libvirt/qemu/vmmodel.xml
newimg=/var/lib/libvirt/images/${newname}.img
newxml=/etc/libvirt/qemu/${newname}.xml
cp$sourceimage$newimgcp$sourcexml$newxml
kvmuuid=`uuidgen`
kvmname=$newname
kvmmem=${newmem}049000
kvmcpu=$newcpu
kvmimg=$newimg
kvmmac=`openssl rand -hex 3 |sed -r 's/..\B/&:/g'`sed -i "s@kvmname@$kvmname@;s@kvmuuid@$kvmuuid@;s@kvmmem@$kvmmem@;s@kvmcpu@$kvmcpu@;s@kvmimg@$kvmimg@;s@kvmmac@$kvmmac@"$newxml
virsh define $newxml
virsh list --all
}#arr=(a b c d e f g h i j k l m n o p q r s t u v w x y z)#declare -A arr2#arr2=([a]=1 [b]=2 [c]=3 [d]=4 [e]=5 [f]=6 [g]=7)
add_disk(){read -p "输入新磁盘的名称:" new_diskname
read -p "输入新建磁盘的大小:" add_disksize
qemu-img create -f qcow2 /var/lib/libvirt/images/${new_diskname}.qcow2 ${add_disksize}
vdisk_path=/var/lib/libvirt/images/${new_diskname}.qcow2
arr=(a b c d e f g h i j k l m n o p q r s t u v w x y z)declare -A arr2
arr2=([a]=1 [b]=2 [c]=3 [d]=4 [e]=5 [f]=6 [g]=7)#最后一块磁盘的最后的一个字母
last_disk_num=virsh domblklist centos7.0-clone |grep'vd'|cut -d' ' -f1|awk -F "vd"'{print $NF}'#找到下一块磁盘名称的最后一个字母
index=${arr2[${last_disk_num}]}
next_word=${arr[$index]}
device_name=vd${next_word}#引用模板文件 source$PWD/disk_mod.xml >${device_name}.xml
virshvirsh list --all
read -p "输入你要给那个虚拟机添加磁盘:" kvm_name
virsh attach-device ${kvm_name}${device_name}.xml --persistent
}#virsh list#virsh list --all#qemu-img create -f qcow2 test.img 5G#删除虚拟机#virsh undefine vm2#creat_virthostwhiletruedoread -p "输入你的选择:"opcase$opin
1)# read -p "请输入要创建的虚拟机的个数:" num# for((i=1;i<=$sum;i++))# do
virsh list --all
creat_virthost
# done;;
4)
add_disk
;;
q)exit;;
esac
done#改变虚拟内存的大小#1 设置一个虚拟机的最多使用内存,前提是此虚拟机关闭状态# 这里仅仅会更改配置文件中的设置#virsh setmaxmem centos3 4096M --config##2 启动虚拟机,当前实际使用的内存还是原来的大小#virsh start centos3##3 假如希望增加正在运行中的虚拟机的内存,使用如下命令#virsh setmem centos3 2048M##永久移除vdb磁盘#virsh detach-disk vmname vdb --persistent#### 目前虚拟机已经存在的盘符#disk_name_w="a b e f"##declare -A tmp_arr##for i in $disk_name_w#do# tmp_arr[$i]=1#done###for i in {a..z}#do# w=${tmp_arr[$i]}# if [ -z "$w" ];then# disk_name=vd$i# echo "磁盘名称是$disk_name"# break# fi#done##创建快照#virsh snapshot-create-as vm2 vm2.snap2#查看快照#virsh snapshot-list vm2####然后将vm2关闭,恢复到快照vm2.snap3#virsh snapshot-revert vm2 vm2-snap3##删除虚拟机快照操作:#virsh snapshot-delete --snapshotname vm2-snap3 vm2