天天看點

KVM 虛拟機腳本

腳本安裝虛拟機

#!/bin/bash

 2 /usr/sbin/virt-install

 3     --vnc \

 4     --noautoconsole \

 5     --name=rhel6base \

 6     --ram=1024 \

 7     --arch=x86_64 \

 8     --vcpus=1 \

 9     --os-type=linux \

10     --os-variant=rhel6 \

11     --hvm \

12     --accelerate \

13     --disk=/dev/vgtest/lvtest \

14     -m 52:54:00:00:01:00 \

15     -w bridge=br0 \

16     --location=ftp://192.168.1.1/rhel6 \

17     --extra-args="ks=ftp://192.168.1.1/ks.cfg"

~                                          

實作能夠建立多台虛拟機的腳本(虛拟機克隆):

IMG_DIR=/var/lib/libvirt/images

BASE_VM=rhel6base

E_NOINPUT=65

E_NOTNUM=66

E_OUT_OF_RANGE=67

E_VM_EXISTS=68

read -p "please input a vm number: " NEW_VMNU

if [ -z $NEW_VMNU ]; then

 echo "You must input a number."

 exit $E_NOINPUT

fi

if [ $NEW_VMNU != $(echo "$NEW_VMNU*1" | bc) ]; then

 exit $E_NOTNUM

if [ $NEW_VMNU -lt 1 -o $NEW_VMNU -gt 254 ]; then

 echo "You must input a number between 1 and 254"

 exit $E_OUT_OF_RANGE

NEW_VM=${BASE_VM}node${NEW_VMNU}

if [ -e $IMG_DIR/$NEW_VM.img ]; then

 echo "$NEW_VM already exists"

 exit $E_VM_EXISTS

echo -en "creating disk image......\t\t"

qemu-img create -b $IMG_DIR/$BASE_VM.img -f qcow2 $IMG_DIR/$NEW_VM.img &> /dev/null

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

echo

virsh dumpxml $BASE_VM > /tmp/$BASE_VM.xml

MAC_ADDR=$(echo "obase=16;$NEW_VMNU" | bc)

sed -i "/<name>$BASE_VM/s/$BASE_VM/$NEW_VM/" /tmp/$BASE_VM.xml

sed -i "/<uuid>/s/<uuid>.\{36\}/<uuid>$(uuidgen)/" /tmp/$BASE_VM.xml

sed -i "/$BASE_VM\.img/s/$BASE_VM\.img/$NEW_VM\.img/" /tmp/$BASE_VM.xml

sed -i "/mac address/s/00'/$MAC_ADDR'/" /tmp/$BASE_VM.xml

virsh define /tmp/$BASE_VM.xml &> /dev/null

echo "$NEW_VM created."

      本文轉自Jx戰壕  51CTO部落格,原文連結:http://blog.51cto.com/xujpxm/1403227,如需轉載請自行聯系原作者

繼續閱讀