虚拟机linux快捷键,Linux 快速生成虚拟机 shell脚本

通过COW写时复制原理 实现快速生成虚拟机脚本

#!/bin/bash

#IMG 为镜像文件目录

#YUAN 为模版虚拟机镜像文件

#NAME 为生成虚拟机镜像文件名头

#XML 为xml文件存放位置

#IP 为当前用户的IP 我取来是为了生成mac地址用的

XML=/etc/libvirt/qemu/

IMG=/var/lib/libvirt/images/

YUAN=rh7_template

NAME=test

UUID=`uuidgen`

#IP=`ifconfig | sed -rn "2p" | sed -r 's/(inet)(.*)(netmask)(.*)/\2/'`

IP=`ifconfig |sed -n '2p' | awk '{print $2}'`

#将IP4,IP3设置为mac地址第三四位

#IP4=`echo $IP | sed -r 's/(.*)([0-9]*)[.]([0-9]*$)/\3/'` 这是我没有学awk的时候写的

IP4=`echo $IP | awk -F. '{print $4}'`

if [ $IP4 -ge 100 ];then

IP4=$[IP4%100]

elif [ $IP4 -le 9 ];then

IP4=0$IP4

fi

#IP3=`echo $IP | sed -r 's/(.*)[.]([0-9]*)[.]([0-9]*$)/\2/'`这也是我没有学awk的时候写的

IP3=`echo $IP | awk -F. '{print $3}'`

if [ $IP3 -ge 100 ];then

IP3=$[IP3%100]

elif [ $IP3 -le 9 ];then

IP3=0$IP3

fi

read -p '请输入要创建的数字: ' NUM

if [ -z $NUM ];then

echo '输入不能为空'

exit

elif [ -z `echo $NUM | sed 's/[^0-9]*//'` ];then

echo '请输入数字'

exit

elif [ $NUM -ge 100 -o $NUM -lt 1 ];then

echo '请输入在1-100以内的数字'

exit

fi

if [ $NUM -le 9 ];then

NUM=0$NUM

fi

NAME=${NAME}${NUM}

if [ -z $1 ];then

if [ -e ${IMG}${NAME}.img ];then

echo '你要创建的号码已经存在'

exit

fi

echo -en "正在创建虚拟机镜像文件和......\t"

#通过镜像文件,快速生成相应镜像文件

qemu-img create -f qcow2 -b ${IMG}.${YUAN}.img ${IMG}${NAME}.img &>/dev/null

echo -e "\e[32;1m[OK]\e[0m"

echo -en "正在生成XML配置文件......\t"

#MYXML 为生成的xml配置文件目录

MYXML=${XML}${NAME}.xml

cp $IMG.rhel7.xml ${MYXML}

#使用sed对镜像文件进行修改

sed -i "/${YUAN}/s/${YUAN}/${NAME}/" ${MYXML}

sed -i "//s/.*$UUID" ${MYXML}

sed -i "/${YUAN}\.img/s/${YUAN}/${NAME}/" ${MYXML}

for i in {a..d}

do

sed -i "/mac/s/${i}1/${IP3}/" ${MYXML}

sed -i "/mac/s/${i}2/${IP4}/" ${MYXML}

sed -i "/mac/s/${i}3/${NUM}/" ${MYXML}

done

echo -e "\e[32;1m[OK]\e[0m"

echo -en "正在生成虚拟机......\t\t"

#通过XML文件生成虚拟机

virsh define ${MYXML} &> /dev/null

if [ $? -eq 0 ];then

echo -e "\e[32;1m[OK]\e[0m"

else

rm -rf ${MYXML}

rm -rf ${IMG}${NAME}.img

echo -e "\e[31;1m[Failed]\e[0m"

fi

#-d将用次方法生成的虚拟机删除 当时是为了测试方便写的

elif [ $1 == "-d" ];then

rm -rf ${MYXML}

rm -rf ${IMG}${NAME}.img

virsh undefine ${NAME} &> /dev/null

echo "成功删除${NAME}虚拟机"

fi

这里我会提供模版XML 文件

模版虚拟机镜像文件 使用KVM生成一个新的rhel7虚拟机 做为原始盘

可以参考 (https://blog.51cto.com/13558754/2057088)

XML 模版

rh7_template

e783146f-d26f-448d-951f-5c739b136d2f

1048576

1048576

1

hvm

destroy

restart

restart

/usr/libexec/qemu-kvm

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值