#!/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]+$ ]]
then
echo "格式不正确,正确示例:1"
exit
fi
if [[ ! $newcpu =~ ^[0-9]+$ ]]
then
echo "格式不正确,正确示例:1"
exit
fi
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 $newimg
cp $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_virthost
while true
do
read -p "输入你的选择:" op
case $op in
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
kvm 管理
最新推荐文章于 2024-07-04 01:30:00 发布