1. 程式人生 > >shell 腳本創建虛擬機 並配置網卡ip地址(兩個腳本)

shell 腳本創建虛擬機 並配置網卡ip地址(兩個腳本)

kvm

#######################腳本1:創建虛擬機kvm#########################
#!/bin/bash
qcow2_dir=/var/lib/libvirt/images
read -p "請輸入虛擬機號碼:" num #主機號
if [ $num -lt 9 ];then
num=0$num ##主機號
fi
if [ -z "$num" ];then
echo "錯誤輸出"
exit 1
fi
kvm_name=host$num #主機名字
echo "正在創建鏡像........"
qemu-img create -f qcow2 -b ${qcow2_dir}/rhel7.4.qcow2 ${qcow2_dir}/${kvm_name}.qcow2 &> /dev/null ###鏡像文件
echo -e "\e[32;1m[ok]\e[0m"
cat /etc/libvirt/qemu/rhel7.4.xml > /etc/libvirt/qemu/${kvm_name}.xml ##描述文件
sed -i "/<name>rhel7.4/s/rhel7.4/${kvm_name}/" /etc/libvirt/qemu/${kvm_name}.xml
sed -i "/<uuid>/d" /etc/libvirt/qemu/${kvm_name}.xml
sed -i "/<source/s/rhel7.4.qcow2/${kvm_name}.qcow2/" /etc/libvirt/qemu/${kvm_name}.xml
sed -i "/<mac address=/d" /etc/libvirt/qemu/${kvm_name}.xml #刪除mac地址,開機動自動生成
virsh define /etc/libvirt/qemu/${kvm_name}.xml &> /dev/null
echo "正在創建虛擬機......."
echo -e "\e[32;1m[ok]\e[0m"
####################腳本2:eth0網卡配ip地址#####################
#!/bin/bash
clear
mountpoint="/media/virimage"
#判斷不存在掛載目錄
[ ! -d $mountpoint ] && mkdir $mountpoint
#如果有設備掛載到該掛載點,則先umount卸載
if mount |grep -q "$mountpoint" ;then
umount $mountpoint
fi
virsh list --all
read -p "輸入虛擬機名稱: " name
echo "請稍後..."
#將虛擬機的磁盤文件掛載到/media/virtimage目錄
guestmount -d $name -i $mountpoint
echo "---------------------------------------"
read -p "請輸入要配置的ip地址: " ip
read -p "請輸入要配置的子網掩碼位數: " num
#靜態地址
sed -i "s;(BOOTPROTO=).;\1none;" ${mountpoint}/etc/sysconfig/network-scripts/ifcfg-eth0
#開機自起
sed -i "s;(ONBOOT=).
;\1yes;" ${mountpoint}/etc/sysconfig/network-scripts/ifcfg-eth0
#如果ip地址不存在,就添加ip地址
grep -q "IPADDR" ${mountpoint}/etc/sysconfig/network-scripts/ifcfg-eth0 || echo "IPADDR=$ip" >> ${mountpoint}/etc/sysconfig/network-scripts/ifcfg-eth0
#如果ip地址存在
sed -i "s;(IPADDR=).;\1$ip;" ${mountpoint}/etc/sysconfig/network-scripts/ifcfg-eth0
#如果子網掩碼不存在,就添加子網掩碼
grep -q "PREFIX" ${mountpoint}/etc/sysconfig/network-scripts/ifcfg-eth0 || echo "PREFIX=$num" >> ${mountpoint}/etc/sysconfig/network-scripts/ifcfg-eth0
#如果子網掩碼存在
sed -i "s;(PREFIX=).
;\1$num;" ${mountpoint}/etc/sysconfig/network-scripts/ifcfg-eth0
echo "ifup eth0" >> ${mountpoint}/etc/rc.d/rc.local
chmod +x ${mountpoint}/etc/rc.d/rc.local
umount ${mountpoint}
sleep 0.5
virsh start $name

shell 腳本創建虛擬機 並配置網卡ip地址(兩個腳本)