KVM虚机克隆脚本

#!/bin/sh

#############################################

###         Auto Clone VM                 ###

###         2014-5-9                      ###

###         Owner: YiQiang.Wei            ###

###         Lastedit: 5-11                ###

###                                       ###

#############################################

default(){

echo

echo

echo -e "\033[32;49;1m             [Default Mode] \033[39;49;0m"

echo

echo

TEM=centos65

IMGDIR=/var/lib/libvirt/images

echo -n "Please Input New VM Name: "

read NNAME

if [ -z $NNAME ];then

echo

#echo "Input Error New VM Name is Empty ! "

echo -e "\033[31mInput Error New VM Name is Empty !  \033[0m"

echo

exit 2

fi

virsh list --all |sed -e ‘1,2d‘|awk ‘{print $2}‘|grep -q $NNAME

retval=$?

if [ $retval -eq 0 ];then

echo

#echo "Input Error New VM Name is Already Use ! "

echo -e "\033[31mError VM $NNAME is Already Use !   \033[0m"

echo

exit 2

fi

echo

echo -e "\033[32;49;1m[$TEM to $NNAME] \033[39;49;0m"

echo

echo -e "\033[32;49;1mstarting Clone... \033[39;49;0m"

#echo "Starting Clone..."

echo

/usr/bin/virt-clone -o $TEM -n $NNAME --file $IMGDIR/$NNAME.img --file $IMGDIR/$NNAME-2.img

}

custom(){

echo

echo

#echo "Custom Mode"

echo -e "\033[32;49;1m             [Custom Mode] \033[39;49;0m"

echo

echo

echo -n "Please Input Template VM Name [Default is template ! ] :  "

read TEM

TEM=${TEM:-"centos65"}

echo $TEM

ST=`virsh list --all |grep $TEM|awk ‘{print $NF}‘`

if [ "$ST" != "off" ];then

echo -e "\033[31mError VM $TEM is Running !   \033[0m"

exit 2

fi

echo -n "Please Input New VM Name: "

read NNAME

NNAME=${NNAME:-"vm-$RANDOM"}

echo $NNAME

virsh list --all |sed -e ‘1,2d‘|awk ‘{print $2}‘|grep -q $NNAME

retval=$?

if [ $retval -eq 0 ];then

echo

echo -e "\033[31mError VM $NNAME is Already Use !   \033[0m"

echo

exit 2

fi

echo -n "Please Input Img Path 1 [Default is /var/lib/libvirt/images/$NNAME.img ! ] :  "

read PATH1

PATH1=${PATH1:-"/var/lib/libvirt/images/$NNAME.img"}

echo -n "Please Input Img Path 2 [Default is /var/lib/libvirt/images/$NNAME-2.img ! ] :  "

read PATH2

PATH2=${PATH2:-"/var/lib/libvirt/images/$NNAME-2.img"}

if [  ! -z $TEM -a ! -x $NNAME -a ! -z $PATH1 -a ! -z $PATH2 ]; then

echo -e "\033[32;49;1m [$TEM to $NNAME] \033[39;49;0m"

echo

echo -e "\033[32;49;1mstarting Clone... \033[39;49;0m"

/usr/bin/virt-clone -o $TEM -n $NNAME --file $PATH1 --file $PATH2

else

echo -e "\033[31mUnknown Error !   \033[0m"

fi

}

multiple(){

echo

echo

echo -e "\033[32;49;1m             [Mutiple Mode] \033[39;49;0m"

echo

echo

TEM=centos65

IMGDIR=/var/lib/libvirt/images

echo -n "Please Input New VM Name: "

read NNAME

if [ -z $NNAME ];then

echo

#echo "Input Error New VM Name is Empty ! "

echo -e "\033[31mInput Error New VM Name is Empty !  \033[0m"

echo

exit 2

fi

for i in $NNAME

do

virsh list --all |sed -e ‘1,2d‘|awk ‘{print $2}‘|grep -q $i

retval=$?

if [ $retval -eq 0 ];then

echo

#echo "Input Error New VM Name is Already Use ! "

echo -e "\033[31mInput Error VM $i is Already Use !   \033[0m"

echo

exit 2

fi

echo -e "\033[32;49;1m [$TEM to $i] \033[39;49;0m"

echo

#echo "Starting Clone..."

echo -e "\033[32;49;1mstarting Clone... \033[39;49;0m"

echo

/usr/bin/virt-clone -o $TEM -n $i --file $IMGDIR/$i.img --file $IMGDIR/$i-2.img

echo

done

}

#############################################################################################################

#Default

#Custom

echo

echo

echo  ‘1) Default  Mode‘

echo  ‘2) Custom   Mode ‘

echo  ‘3) Multiple Mode ‘

echo

echo -n "Please Select: "

read SMODE

if [ -z $SMODE ];then

SMODE=1

fi

case $SMODE in

1)

default

;;

2)

custom

;;

3)

multiple

;;

*)

#Select error

echo -e "\033[31mSelect Error !  \033[0m"

;;

esac

#EOF

Crazy_Linux !

KVM虚机克隆脚本,布布扣,bubuko.com

时间: 2025-01-05 08:51:36

KVM虚机克隆脚本的相关文章

创建ubuntu14.04 KVM虚机

琢磨了一天,终于方便的手工生成了kvm虚机,分享一下: 1,创建qcow2文件: ~]# qemu-img create -f qcow2 testnode1.qcow2 30G Formatting 'testnode1.qcow2', fmt=qcow2 size=32212254720 encryption=off cluster_size=65536 2,用virt-image启动一个kvm虚机 ~]#virt-install --name=testnode1 --ram 3072 --

远程管理 KVM 虚机 - 每天5分钟玩转 OpenStack(5)

上一节我们通过 virt-manager 在本地主机上创建并管理 KVM 虚机.其实 virt-manager 也可以管理其他宿主机上的虚机.只需要简单的将宿主机添加进来 填入宿主机的相关信息,确定即可. 接下来,我们就可以像管理本地虚机一样去管理远程宿主机上的虚机了. 这里其实有一个要配置的地方. 因为 KVM(准确说是 Libvirt)默认不接受远程管理,需要按下面的内容配置被管理宿主机中的两个文件 /etc/default/libvirt-bin startlibvirtd="yes&qu

启动第一个 KVM 虚机 - 每天5分钟玩转 OpenStack(4)

本节演示如何使用 virt-manager 启动 KVM 虚机. 首先通过命令 virt-manager 启动图形界面 # virt-manager 点上面的图标创建虚机 给虚机命名为 kvm1,这里选择从哪里启动虚机.如果是安装新的 OS,可以选择第一项.如果已经有安装好的镜像文件,选最后一项(如上图) 接下来需要告诉 virt-manager 镜像的位置. 点击 “Browser” 在我的系统中存放了一个 cirros-0.3.3-x86_64-disk.img 镜像文件 .cirros 是

启动第一个 KVM 虚机

本节演示如何使用 virt-manager 启动 KVM 虚机. 首先通过命令 virt-manager 启动图形界面 1 # virt-manager 点上面的图标创建虚机 给虚机命名为 kvm1,这里选择从哪里启动虚机.如果是安装新的 OS,可以选择第一项.如果已经有安装好的镜像文件,选最后一项(如上图) 接下来需要告诉 virt-manager 镜像的位置. 点击 "Browser" 在我的系统中存放了一个 cirros-0.3.3-x86_64-disk.img 镜像文件 .c

KVM 介绍(8):使用 libvirt 迁移 QEMU/KVM 虚机和 Nova 虚机 [Nova Libvirt QEMU/KVM Live Migration]

学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分配和 SR-IOV (5)libvirt 介绍 (6)Nova 通过 libvirt 管理 QEMU/KVM 虚机 (7)快照 (snapshot) (8)迁移 (migration) 1. QEMU/KVM 迁移的概念 迁移(migration)包括系统整体的迁移和某个工作负载的迁移.系统整理迁移

KVM 介绍(6):Nova 通过 libvirt 管理 QEMU/KVM 虚机 [Nova Libvirt QEMU/KVM Domain]

学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分配和 SR-IOV (5)libvirt 介绍 (6)Nova 通过 libvirt 管理 QEMU/KVM 虚机 1. Libvirt 在 OpenStack 架构中的位置 在 Nova Compute 节点上运行的 nova-compute 服务调用 Hypervisor API 去管理运行在该

Centos 7.4 启动第一个 KVM 虚机 实验And问题总结

使用KVM组件安装了一台虚拟机,需要libvirt-bin组件支持,已经使用yum安装完成了,启动时发现错误.使用rpm -qa | grep libvirt 显示组件已经安装. 参考实验手册无法启动,因实验范例使用的是Ubuntu,在程序启动方式上存在差异,当前环境是centos 7.4[[email protected] ~]# /bin/systemctl status libvirt-bin.serviceUnit libvirt-bin.service could not be fou

KVM(六)Nova 通过 libvirt 管理 QEMU/KVM 虚机

1. Libvirt 在 OpenStack 架构中的位置 在 Nova Compute 节点上运行的 nova-compute 服务调用 Hypervisor API 去管理运行在该 Hypervisor 的虚机.Nova 使用 libvirt 管理 QEMU/KVM 虚机,还使用别的 API 去管理别的虚机.        libvirt 的实现代码在 /nova/virt/libvirt/driver.py 文件中. 这里是 OpenStack Hypervisor Matrix. 这里是

实现vnc访问kvm虚机

(使用secureCRT工具) 1.启动虚拟机 virsh start vmname 2.获取虚机vnc virsh vncdisply vmname 如127.0.0.1:6 3.修改会话,配置端口转发 vnc端口为(5900+6)5906 4.使用vnc工具进行连接 127.0.0.1:5906 这样就能够访问kvm,虚拟机啦