#!/bin/bash
#**********************************************
#author mr.葛
#create time 2023-04-18
#**********************************************
# 获取当前ID
id=$(pvesh get /cluster/nextid)
echo -e "\033[32;1m当前导入模板ID为ID:$id \033[0m"
sleep 3s
echo -e "\033[32;1m选择当前需要导入的模板镜像\033[0m"
files=($(ls -1IR /mnt/pve/nfs/qcow2/ | grep -v ":$" | sed -e 's/\..*$//'))
select file in "${files[@]}"; do
if [[ -n $file ]]; then
iso=$file
break
fi
done
echo -e "\033[32;1m当前选择的镜像为:$iso \033[0m"
sleep 3s
# 选择虚拟机内存和CPU资源
echo -e "\033[32;1m根据自身程序要求,选择内存和CPU资源
例:2C2G
例:2C4G
例:4C4G
例:4C8G\033[0m"
echo -e "\033[32;1m根据数字提示选项,选择CPU资源\033[0m"
CPU=("2C" "4C" "8C")
select core in "${CPU[@]}"; do
case $core in
"2C")
echo "2C"
chosen_cpu="2"
break
;;
"4C")
echo "4C"
chosen_cpu="4"
break
;;
"8C")
echo "8C"
chosen_cpu="8"
break
;;
*) echo "选择错误,请重新选择";;
esac
done
echo -e "\033[32;1m根据数字提示选项,选择内存资源\033[0m"
memory=("2G" "4G" "8G")
select mem in "${memory[@]}"; do
case $mem in
"2G")
echo "2G"
chosen_mem="2048"
break
;;
"4G")
echo "4G"
chosen_mem="4096"
break
;;
"8G")
echo "8G"
chosen_mem="8192"
break
;;
*) echo "选择错误,请重新选择";;
esac
done
echo -e "\033[32;1m创建虚拟机\033[0m"
qm create $id --name $iso --memory $chosen_mem --sockets 1 --cores $chosen_cpu
echo -e "\033[32;1m导入qcow2镜像到虚拟机的磁盘\033[0m"
qm importdisk $id /mnt/pve/nfs/qcow2/$iso.qcow2 zmc-nfs
echo -e "\033[32;1m把未使用的磁盘挂载到虚拟机\033[0m"
qm set $id -ide0 nfs:$id/vm-$id-disk-0.raw,media=disk
echo -e "\033[32;1m设置虚拟机启动项\033[0m"
qm set $id -boot c --bootdisk ide0
echo -e "\033[32;1m虚拟机转为模板\033[0m"
qm template $id
echo -e "\033[31;1m导入模板成功,按'q'退出;如果还有别的模板,按'enter'继续!\033[0m "
read -n 1 -r -s -p "" key
if [ "$key" = "q" ]; then
echo "Exiting..."
exit
else
exec "$0" "$@"
fi
pve批量导入qcow2镜像并生成pve模板脚本
最新推荐文章于 2024-06-06 09:56:03 发布