pve批量导入qcow2镜像并生成pve模板脚本

#!/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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值