
#!/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 3secho -e "\\033[32;1m选择当前需要导入的模板镜像\\033[0m"
files=($(ls -1IR /mnt/pve/nfs/qcow2/ | grep -v ":$" | sed -e 's/\\..*$//'))
select file in "${files[@]}"; doif [[ -n $file ]]; theniso=$filebreakfi
doneecho -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[@]}"; docase $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
doneecho -e "\\033[32;1m根据数字提示选项,选择内存资源\\033[0m"
memory=("2G" "4G" "8G")
select mem in "${memory[@]}"; docase $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
doneecho -e "\\033[32;1m创建虚拟机\\033[0m"
qm create $id --name $iso --memory $chosen_mem --sockets 1 --cores $chosen_cpuecho -e "\\033[32;1m导入qcow2镜像到虚拟机的磁盘\\033[0m"
qm importdisk $id /mnt/pve/nfs/qcow2/$iso.qcow2 zmc-nfsecho -e "\\033[32;1m把未使用的磁盘挂载到虚拟机\\033[0m"
qm set $id -ide0 nfs:$id/vm-$id-disk-0.raw,media=diskecho -e "\\033[32;1m设置虚拟机启动项\\033[0m"
qm set $id -boot c --bootdisk ide0 echo -e "\\033[32;1m虚拟机转为模板\\033[0m"
qm template $idecho -e "\\033[31;1m导入模板成功,按'q'退出;如果还有别的模板,按'enter'继续!\\033[0m "
read -n 1 -r -s -p "" keyif [ "$key" = "q" ]; thenecho "Exiting..."exit
elseexec "$0" "$@"
fi