#!/usr/bin/bash
#by cherish
#该kvm虚拟机是根据文件来创建的
iso=/var/lib/libvirt/images/muban.img
configure_file=/etc/libvirt/qemu/muban.xml
location1=/var/lib/libvirt/images
location2=/etc/libvirt/qemu
echo -e "\e[1;31m
1.创建默认配置虚拟机
2.创建自定义虚拟机
3.管理虚拟机
4.虚拟机快照
5.退出
\e[0m"
read -p "PLS input your choice: " choice
case $choice in
1)
read -p "请输入你想创建的虚拟机个数: " count
i=0
while [ $i -lt $count ]
do
kvmname=`openssl rand -hex 5`
kvmuuid=`uuidgen`
kvmmac=`openssl rand -hex 3 | sed -r 's/..\B/&:/g'`
echo "请稍候..."
echo "正在复制......"
cp $iso $location1/${kvmname}.img
cp $configure_file $location2/${kvmname}.xml
echo "复制已完成"
sed -ri "s#muban#$kvmname#g" $location2/${kvmname}.xml
sed -ri "s#kvmuuid#$kvmuuid#" $location2/${kvmname}.xml
sed -ri "s#kvmmem#1536000#" $location2/${kvmname}.xml
sed -ri "s#kvmcpu#1#" $location2/${kvmname}.xml
sed -ri "s#a3:3f:d2#$kvmmac#" $location2/${kvmname}.xml
virsh define $location2/${kvmname}.xml &> /dev/null
let i++
done
sleep 2
virsh list --all
echo "$count Virt-machine is created"
exit
;;
2)
read -p "请输入你想要的虚拟机的名字: " name
read -p "请输入该虚拟机的cpu个数: " count
read -p "请输入该虚拟的内存: " mem
uuid=`uuidgen`
mac=`openssl rand -hex 3 | sed -r 's/..\B/&:/g'`
echo "请稍后..."
echo "正在复制......"
cp $iso $location1/${name}.img
cp $configure_file $location2/${name}.xml
echo "复制已完成"
sed -ri "s#muban#$name#g" $location2/${name}.xml
sed -ri "s#kvmmem#$mem#g" $location2/${name}.xml
sed -ri "s#kvmcpu#$count#g" $location2/${name}.xml
sed -ri "s#kvmuuid#$uuid#" $location2/${name}.xml
sed -ri "s#kvmmac#$mac#" $location2/${name}.xml
virsh define $location2/${name}.xml
sleep 3
virsh list --all
echo "该虚拟机已创建成功."
;;
3)
echo -e "\e[1;40m 即将输出你可以操作的虚拟机列表: \e[0m"
sleep 3
virsh list --all
read -p "请输入你所想要管理的虚拟机: " name
echo -e "\e[1;31m
1、开启虚拟机
2、关闭虚拟机
3、重启虚拟机
4、删除虚拟机
5、退出
\e[0m"
read -p "输入你的操作: " option
case $option in
1)
virsh start $name
;;
2)
virsh shutdown $name
;;
3)
virsh reboot $name
;;
4)
virsh shutdown $name &> /dev/null
sleep 10
a=`virsh snapshot-list virt-two |awk '{print $1}'|awk '!/^N/{print}'|awk '!/^-/{print}'`
if [ ${#a} -gt 0 ];then
read -p "此虚拟机有快照是否确认删除快照 [y] " p
if [ "${p}" = "y" ];then
virsh snapshot-delete --snapshotname $a $name
sleep 3
virsh undefine $name
rm -rf $location1/${name}.img
echo "$name 删除成功"
else
exit
fi
fi
;;
5)
exit
;;
esac
;;
4)
echo -e "\e[1;40m 即将输出你可以操作的虚拟机列表: \e[0m"
sleep 3
virsh list --all
read -p "请输入你所要操作的虚拟机: " name
echo -e "\e[1;31m
1.创建快照
2.删除快照
3.恢复快照
4.退出
\e[0m"
read -p "请输入你对该虚拟机进行的快照操作: " choice
case $choice in
1)
echo -e "\e[1;40m 即将输出你可以操作的虚拟机快照列表: \e[0m"
sleep 3
virsh snapshot-list $name
echo "即将创建快照,请注意快照名字不可以一样."
virsh snapshot-create-as $name ${name}.snap
;;
2)
virsh snapshot-list $name
virsh snapshot-delete --snapshotname ${name}.snap $name;;
3)
virsh snapshot-list $name
virsh snapshot-revert $name ${name}.snap;;
4)
exit;;
esac
;;
5)
exit
;;
esac
5911

被折叠的 条评论
为什么被折叠?



