您的位置:首页 > 其它

KVM虚拟机脚本自动化安装脚本1

2016-10-26 16:30 218 查看


     1 #!/bin/bash

      2 . /etc/init.d/functions

      3 #set LANG

      4 export LANG=zh_CN.UTF-8

      7 USER_N=`whoami`

      8 HOSTNAME=`hostname`

      9 LOGDIR=/data/nfyg/kvm/log

     10 SYS=/data/nfyg/images/centos6.5-kvm

     11 IPADDR=`grep "IPADDR" /etc/sysconfig/network-scripts/ifcfg-br0|cut -d= -f 2 `

     12 ############################################################

     13 FREE=4096

     14 CPU=2

     15 DISK=300G

     16 CDROM=/data/nfyg/iso/CentOS-6.5-x86_64-bin-DVD1.iso

     17 ############################################################

     18 netstat -tnlp |grep qemu-kvm |awk -F : '{print $2,$5}' >"$LOGDIR"/vnc.log

     19 if [ -f /data/nfyg/kvm/log/expr.log ];then

     20 echo -e "\033[40;33m $USER_N $DATE $HOSTNAME expr.log file already exists! \033[0m" >>"$LOGDIR"/kvm_${D}.log

     21 else

     23 fi

     24 

     25 EXPR=`tail -1 /data/nfyg/kvm/log/expr.log`

     26 EXP=`expr 1 + "$EXPR" `

      1 #!/bin/bash

     16 CDROM=/data/nfyg/iso/CentOS-6.5-x86_64-bin-DVD1.iso

     17 ############################################################

     18 netstat -tnlp |grep qemu-kvm |awk -F : '{print $2,$5}' >"$LOGDIR"/vnc.log

     21 echo -e "\033[40;33m $USER_N $DATE $HOSTNAME expr.log file already exists! \033[0m" >>"$LOGDIR"/kvm_${D}.log

     22 else 

     26 EXPR=`tail -1 /data/nfyg/kvm/log/expr.log`

     27 EXP=`expr 1 + "$EXPR" `

     28 echo "$EXP" >/data/nfyg/kvm/log/expr.log

     29 NAME=Centos6.5-kvm$EXP

     30 

     31 #虚拟机安装

     32 echo ""

     33 echo "================KVM虚拟机安装==========================="

     34 if [ ! -d "$SYS$EXP".raw ]; then

     35 echo qemu-img create -f raw "$SYS$EXP".raw "$DISK" >>"$LOGDIR"/kvm_${D}.log

     36 action "$SYS虚拟机安装文件建成功"      /bin/true

     37 echo ""

     38 echo -e "\033[40;33m "$USER_N $DATE $HOSTNAME KVM create directory successfully!"\033[0m" >>"$LOGDIR"/kvm_${D}.log

     39      if [ ! -d "$SYS$EXP".raw ];then

     40      echo -e "\033[40;33m "$USER_N $DATE $HOSTNAME   KVM INSTALL START!"\033[0m" >>"$LOGDIR"/kvm_${D}.log

     41     echo virt-install --name "$NAME" --virt-type kvm --ram "$FREE" --vcpus "$CPU"  --cdrom="$CDROM" --disk path="$SYS$EXP".raw --network bridge=br0 -        -network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole >>"$LOGDIR"/kvm_${D}.log

     42      action "$SYS虚拟机创建中请稍后"   /bin/true

     43      fi

     44 fi

     45 echo "========================================================="

     46 echo ""

     47 #显示显示所有的虚拟机:

     48 virsh list --all

     49 #获取VNC端口:

     50 netstat -tnlp |grep qemu-kvm |awk -F : '{print $2,$5}' >"$LOGDIR"/newvnc.log

     51 DIFF=$(diff -b /data/nfyg/kvm/log/vnc.log /data/nfyg/kvm/log/newvnc.log -y -W 20)

     52 echo "$DIFF" >/data/nfyg/kvm/log/diff.log

     53 CAT=$(cat /data/nfyg/kvm/log/diff.log |grep ">")

     54 #显示安装虚拟机信息:

     55 echo "虚拟机名:$NAME"

     56 echo "CPU:$CPU"

     57 echo "内存:$FREE"

     58 echo "磁盘:$DISK"

     59 echo "ISO镜像:$CDROM"

     60 echo "VNC IP/端口:$IPADDR":"$CAT"

     61 echo "========================================================"

     62 echo ""

更新版



#!/bin/bash

. /etc/init.d/functions

#set LANG

export LANG=zh_CN.UTF-8

DATE=`date "+%Y-%m-%d %H:%M:%S"`

D=`date +%Y%m%d`

USER_N=`whoami`

HOSTNAME=`hostname`

LOGDIR=/data/nfyg/kvm/log

SYS=/data/nfyg/images/centos6.5-kvm

IPADDR=`grep "IPADDR" /etc/sysconfig/network-scripts/ifcfg-br0|cut -d= -f 2 `

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

FREE=8192

CPU=4

DISK=300G

CDROM=/data/nfyg/iso/CentOS-6.5-x86_64-bin-DVD1.iso

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

netstat -tnlp |grep qemu-kvm |awk -F : '{print $2,$5}' >"$LOGDIR"/vnc.log

#判断目录是否存在

if [ -f /data/nfyg/kvm/log/expr.log ];then

echo -e "\033[40;33m $USER_N $DATE $HOSTNAME expr.log file already exists! \033[0m" >>"$LOGDIR"/kvm_${D}.log

else

echo "0" > /data/nfyg/kvm/log/expr.log && echo -e "\033[40;33m $USER_N $DATE $HOSTNAME expr.log create file successfully! \033[0m" >>"$LOGDIR"/kvm_${D}.log

fi

#虚拟机序号+1

EXPR=`tail -1 /data/nfyg/kvm/log/expr.log`

EXP=`expr 1 + "$EXPR" `

echo "$EXP" >/data/nfyg/kvm/log/expr.log

NAME=Centos6.5-kvm$EXP

#虚拟机安装

echo ""

echo "================KVM虚拟机安装========================================"

if [ ! -d "$SYS$EXP".raw ]; then

    echo qemu-img create -f raw "$SYS$EXP".raw "$DISK" >>"$LOGDIR"/kvm_${D}.log

     b='' 

     for ((i=0;$i<=100;i+=2)) 

     do 

       printf "镜像文件创建:[%-50s] %d%%\r" $b $i 

     sleep 0.1 

       b+='#' 

     done 

     echo

     echo ""

     action "$SYS镜像文件创建成功"      /bin/true

     echo ""

     echo -e "\033[40;33m "$USER_N $DATE $HOSTNAME KVM create directory successfully!"\033[0m" >>"$LOGDIR"/kvm_${D}.log

     if [ ! -d "$SYS$EXP".raw ];then

     echo -e "\033[40;33m "$USER_N $DATE $HOSTNAME   KVM INSTALL START!"\033[0m" >>"$LOGDIR"/kvm_${D}.log

     echo virt-install --name "$NAME" --virt-type kvm --ram "$FREE" --vcpus "$CPU"  --cdrom="$CDROM" --disk path="$SYS$EXP".raw --network bridge=br0  --graphics vnc,listen=0.0.0.0 --noautoconsole >>"$LOGDIR"/kvm_${D}.log 

     b='' 

     for ((i=0;$i<=100;i+=2)) 

     do 

        printf "虚拟机的创建:[%-50s] %d%%\r" $b $i 

     sleep 0.1 

       b+='#' 

     done 

     echo

     echo ""

     action "$SYS虚拟机创建成功,继续安装!"   /bin/true

     fi

fi

echo "====================================================================="

echo ""

#显示显示所有的虚拟机:

virsh list --all

#获取VNC端口:

netstat -tnlp |grep qemu-kvm |awk -F : '{print $2,$5}' >"$LOGDIR"/newvnc.log

DIFF=$(diff -b /data/nfyg/kvm/log/vnc.log /data/nfyg/kvm/log/newvnc.log -y -W 20)

echo "$DIFF" >/data/nfyg/kvm/log/diff.log 

CAT=$(cat /data/nfyg/kvm/log/diff.log |grep ">")

#显示安装虚拟机信息:

echo "虚拟机名:$NAME"

echo "CPU:$CPU"

echo "内存:$FREE"

echo "磁盘:$DISK"

echo "ISO镜像:$CDROM"

echo "VNC IP/端口:$IPADDR":"$CAT"

echo ""

echo "===================================================================="

echo ""

echo "vm表示需要关闭目标虚拟机名称 "

echo "1、查看所有虚拟机    virsh list --all "

echo "2、关闭虚拟机        virsh shutdown vm"

echo "3、强制关闭虚拟机    virsh destroy vm "

echo "4、开启虚拟机        virsh start vm"

echo "5、设置主机开机自启  virsh autostart vm "

echo ""
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: