linux脚本快速克隆虚拟机(多虚拟网卡)

#######准备镜像文件.rhel7_template.img,描述文件.rhel7.xml分别放在/var/lib/libvirt/images/内
#######记得把文件改成隐藏文件

#!/bin/bash
exit code:
65 -> user input nothing
66 -> user input is not a number
67 -> user input out of range
68 -> vm disk image exists

IMG_DIR=/var/lib/libvirt/images
BASEVM=rh7_template ####镜像文件模版名
ROOM=sed -n "1p" /etc/hostname | sed -r ‘s/(room)([0-9]{1,})(.*)/\2/‘
if [ $ROOM -le 9 ];then
ROOM=0$ROOM
fi
IP=sed -n "1p" /etc/hostname | sed -r ‘s/(.*)([0-9]+)(.*)/\2/‘
read -p "Enter VM number: " VMNUM
if [ $VMNUM -le 9 ];then
VMNUM=0$VMNUM
fi

if [ -z "${VMNUM}" ]; then
echo "You must input a number."
exit 65
elif [ $(echo ${VMNUM}*1 | bc) = 0 ]; then
echo "You must input a number."
exit 66
elif [ ${VMNUM} -lt 1 -o ${VMNUM} -gt 99 ]; then
echo "Input out of range"
exit 67
fi

NEWVM=rh7_node${VMNUM}

if [ -e $IMG_DIR/${NEWVM}.img ]; then
echo "File exists."
exit 68
fi

echo -en "Creating Virtual Machine disk image......\t"
qemu-img create -f qcow2 -b $IMG_DIR/.${BASEVM}.img $IMG_DIR/${NEWVM}.img &> /dev/null
echo -e "\e[32;1m[OK]\e[0m"

#virsh dumpxml ${BASEVM} > /tmp/myvm.xml
cat /var/lib/libvirt/images/.rhel7.xml > /tmp/myvm.xml ##.rhel7.xml 描述文件
sed -i "/<name>${BASEVM}/s/${BASEVM}/${NEWVM}/" /tmp/myvm.xml
sed -i "/uuid/s/<uuid>.*<\/uuid>/<uuid>$(uuidgen)<\/uuid>/" /tmp/myvm.xml
sed -i "/${BASEVM}.img/s/${BASEVM}/${NEWVM}/" /tmp/myvm.xml

sed -i "/mac /s/a1/${ROOM}/" /tmp/myvm.xml
sed -i "/mac /s/a2/${IP}/" /tmp/myvm.xml
sed -i "/mac /s/a3/${VMNUM}/" /tmp/myvm.xml

sed -i "/mac /s/b1/${ROOM}/" /tmp/myvm.xml
sed -i "/mac /s/b2/${IP}/" /tmp/myvm.xml
sed -i "/mac /s/b3/${VMNUM}/" /tmp/myvm.xml

sed -i "/mac /s/c1/${ROOM}/" /tmp/myvm.xml
sed -i "/mac /s/c2/${IP}/" /tmp/myvm.xml
sed -i "/mac /s/c3/${VMNUM}/" /tmp/myvm.xml

sed -i "/mac /s/d1/${ROOM}/" /tmp/myvm.xml
sed -i "/mac /s/d2/${IP}/" /tmp/myvm.xml
sed -i "/mac /s/d3/${VMNUM}/" /tmp/myvm.xml

echo -en "Defining new virtual machine......\t\t"
virsh define /tmp/myvm.xml &> /dev/null
echo -e "\e[32;1m[OK]\e[0m"

原文地址:http://blog.51cto.com/13587169/2079874

时间: 2024-10-07 15:37:28

linux脚本快速克隆虚拟机(多虚拟网卡)的相关文章

Linux:配置Linux网络和克隆虚拟机并更改配置

Linux学习笔记1:配置Linux网络和克隆虚拟机并更改配置 一.配置Linux网络 在安装Linux的时候,一定要保证你的物理网络的IP是手动设置的,要不然会在Linux设置IP连通网络的时候会报network is unreachable 并且怎么也找不到问题在哪! 当在VMware中安装完Linux以后需要通过一些网络配置才能使Linux能够连能网络: 1.首先如果是在虚拟机上安装的Linux必须要保证在网络适配器的地方选择的是:NAT模式:用于共享主机的IP地址: 2.当VMware安

RHEL克隆虚拟机后改变网卡地址

RHEL克隆虚拟机后改变网卡地址 (一)更改hostname # vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=your-vm-hostname-here (二)更改网卡地址 在使用virt-manager或virtual-box克隆了RHEL6的虚拟机之后,网卡地址需要手动更改. 首先在virt-manager中查看虚拟机属性: View->Details Overview  |  Basic Details Name: vm-rhel64

CentOS下使用KVM克隆虚拟机自动修改网卡的MAC地址

克隆完虚拟机之后Mac地址还保留着母机的配置,此时需要修改成新的Mac地址才能继续,网上一般都是这样的手动操作: 参考:http://blog.51cto.com/freedyong/1361907 1.修改/etc/udev/rules.d/70-persistent-net.rules,去掉eth0,修改eth1为eth0 2.修改/etc/sysconfig/network-scripts/ifcfg-eth0的Mac地址 当时发觉这样子很不适合KVM克隆后的批量操作,而且写Shell脚本

Linux CentOS 7 克隆虚拟机+互相登录

有时候我们需要两台虚拟机做实验,这时候当然可以再次安装一台新的虚拟机,但是为了节省时间我不建议这样做,因为Vmware软件本来就为我们提供了此项功能干嘛不用呢?首先打开克隆如下: 下一步.下一步到此界面我们选择第一项,第二项不建议选择,因为此项所花费的时间和你重新安装一台没有多大区别了! 输入一个新的虚拟机名称,下一步即可!关闭,完成! 切换到新虚拟机界面并开机启动到系统! 首先进入系统后我们需要修改IP地址,不然另外被克隆的主机只要打开,两台机器就会冲突! 如下图:修改一个新的IP 地址,并删

使用vmware克隆虚拟机,配置网卡的时候出现报错

以下三步即可快速解决 第一步:修改或删除文件/etc/udev/rules.d/70-persistent-net.rules [[email protected] ~]# mv /etc/udev/rules.d/70-persistent-net.rules /etc/udev/rules.d/70-persistent-net.rules.bak 第二步:修改网卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0 把网卡或MAC信息注释掉. DEVI

VMvare克隆虚拟机之后重启网卡失败

首先 ip addr 查看网卡信息,注意网卡名和mac地址 然后 nmcli con show 查看网卡uuid cd 到 /etc/sysconfig/network-scripts目录, 备份之前的网络文件,eg: cp ifcfg-ens160  /root/ifcfg-ens160 修改网络文件,分别是HWADDR UUID NAME DEVICE 字段 HWADDR修改为上面查看到的mac地址 UUID修改为上面查看到的uuid NAME 和 DEVICE修改为 ip addr 查看到

linux在虚拟机中把网卡模式从NAT换成桥接无法显示网卡

linux centos6.5在虚拟机中把网卡模式从NAT换成桥接无法显示网卡 今天在虚拟机中装完系统,使用ifconfig查看了下网卡的地址,发现不是局域网中的,后来检查发现是虚拟机设置成了NAT,所以就立即把NAT换成桥接模式但是出现了一下状况: 1.使用ifconfig显示如下信息 又使用dhclient来自动获取: 这下还是没有地址,重启了网络服务 /etc/init.d/network restart 2.使用vi命令来打开网卡配置配置信息,然后把ONBOOT=no改成ONBOOT=y

克隆虚拟机出现的问题

克隆虚拟机后发现网卡名称与配置对不上,原网卡名eth0,ip:192.168.1.122,克隆后网卡名eth1,ip:192.168.1.127 解决如下, [[email protected] ~]#sed -i '/eth0/d' /etc/udev/rules.d/70-persistent-net.rules  [[email protected] ~]#sed -i 's/eth1/eth0/' /etc/udev/rules.d/70-persistent-net.rules  [[

克隆虚拟机网卡重复问题

一.虚拟机网卡重名介绍     在实验中克隆虚拟机能快速虚拟出另外一台虚拟机主机,能很好的帮助人们搭建实验环境,可是linux克隆出来网卡会用不了.需要修改配置文档. 二.具体问题解决 1.克隆后查看网卡 2.修改配置文件如下 修改后的配置图片 3.修改网卡配置图片 修改后的配置文档 4.网卡驱动的卸载和重装 5.重启网卡  service network restart  查询网卡 正常 三.总结     遇到这类问题上搜一下,大多都有解决方法.         克隆虚拟机网卡重复问题,布布扣