博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux 快速生成虚拟机 shell脚本
阅读量:6157 次
发布时间:2019-06-21

本文共 3962 字,大约阅读时间需要 13 分钟。

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

#!/bin/bash#IMG 为镜像文件目录#YUAN 为模版虚拟机镜像文件#NAME 为生成虚拟机镜像文件名头#XML 为xml文件存放位置#IP 为当前用户的IP 我取来是为了生成mac地址用的XML=/etc/libvirt/qemu/IMG=/var/lib/libvirt/images/YUAN=rh7_templateNAME=testUUID=`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$IP4fi#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$IP3firead -p '请输入要创建的数字: ' NUMif [ -z $NUM ];then    echo '输入不能为空'    exitelif [ -z `echo $NUM | sed 's/[^0-9]*//'` ];then    echo '请输入数字'    exitelif [ $NUM -ge 100 -o $NUM -lt 1 ];then    echo '请输入在1-100以内的数字'     exitfiif [ $NUM -le 9 ];then    NUM=0$NUMfiNAME=${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
/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虚拟机 做为原始盘
可以参考 ()

XML 模版

rh7_template
e783146f-d26f-448d-951f-5c739b136d2f
1048576
1048576
1
hvm
destroy
restart
restart
/usr/libexec/qemu-kvm

转载于:https://blog.51cto.com/13558754/2057094

你可能感兴趣的文章
讲讲吸顶效果与react-sticky
查看>>
c++面向对象的一些问题1 0
查看>>
售前工程师的成长---一个老员工的经验之谈
查看>>
Get到的优秀博客网址
查看>>
老男孩教育每日一题-第107天-简述你对***的理解,常见的有哪几种?
查看>>
Python学习--time
查看>>
在OSCHINA上的第一篇博文,以后好好学习吧
查看>>
Spring常用注解
查看>>
linux:yum和apt-get的区别
查看>>
Sentinel 1.5.0 正式发布,引入 Reactive 支持
查看>>
数据库之MySQL
查看>>
2019/1/15 批量删除数据库相关数据
查看>>
数据类型的一些方法
查看>>
Webpack 2 中一些常见的优化措施
查看>>
移动端响应式
查看>>
js中var、let、const的区别
查看>>
简洁优雅地实现夜间模式
查看>>
react学习总结
查看>>
在soapui上踩过的坑
查看>>
MySQL的字符集和字符编码笔记
查看>>