设为首页 收藏本站
查看: 2039|回复: 0

[经验分享] Centos 7 kvm虚拟化 批量装机脚本

[复制链接]
累计签到:102 天
连续签到:1 天
发表于 2016-5-3 17:32:42 | 显示全部楼层 |阅读模式
Centos  7 kvm虚拟化   批量装机脚本
实验环境:
软件VMware workstations
系统 CentOS Linux release 7.1.1503 (Core)
建议安装图形,好使用Xmanager Enterprise 4出图,好用vnc登录安装模板虚拟机

1.环境准备:

systemctl  disable     firewalld;systemctl  stop      firewalld          #关闭防火墙
sed -i 's/SELINUX=.*/SELINUX=disabled/g'    /etc/selinux/config   #关闭selinux

yum  groupinstall "Virtualization Host"   -y                  #虚拟化组包
yum install qemu-kvm libvirt virt-install bridge-utils -y  #桥接网卡
yum install tigervnc*   -y                                          #用来图形界面连接虚拟机

[iyunv@localhost ~]# lsmod  |grep kvm
kvm_intel             148081  12
kvm                   461126  1 kvm_intel  #查看kvm模块是否打开

启动,服务
systemctl start libvirtd;systemctl enable libvirtd

重启机器  init  6

2.母鸡网卡桥接

[iyunv@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
BOOTPROTO=dhcp   #改成static 下面可以根据自己需求写成静态ip
DEVICE=br0
DNS1=222.88.88.88
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
ONBOOT=yes
[iyunv@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE=Ethernet
BRIDGE=br0
BOOTPROTO=none         
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME="eno16777736"  #根据你网卡的名字修改
ONBOOT=yes
3.创建虚拟机及存储位置,并安装模板虚拟机

修改libvirt 配置文件 /etc/libvirt/qemu.conf   vnc 监听,所有者,所属组,不然安装虚拟机,会有报错,提示没权限

[iyunv@localhost ~]# grep -E  -v "^#|^$"  /etc/libvirt/qemu.conf
vnc_listen = "0.0.0.0"
user = "root"
group = "root"
dynamic_ownership = 0

mkdir  /data/
root家目录传一个centos6.5 的镜像我们用来安装一个模板

virt-install  -n  centos6.5  -r 1024   -c /root/CentOS-6.5-x86_64-minimal.iso  --disk path=/data/centos6.5.img,device=disk,bus=virtio,size=30,format=qcow2  --vnc  --vncport=5901  --vnclisten=0.0.0.0 -v
会弹出,安装界面

26719405_14472065278w9y.jpg
安装完毕,配置好ip,也可以不用配置,我们通过脚本,复制一个网卡配置文件到虚拟机磁盘
rm -rf /etc/udev/rules.d/70-persistent-net.rules   #重要: 删除udev 规则

关机,此虚拟机作为我们的模板

4.脚本环境准备
yum install   libguestfs-tools  -y                             #我们需要用到这个工具,用脚本调用命令去操作虚拟机磁盘里面的文件
cp /etc/libvirt/qemu/centos6.5-node1.xml   /data/    #此xml 文件作为模板文件,安装过虚拟机会生成这样的xml 文件
/data/centos6.5.img                                              #此硬盘作为模板硬盘文件

网卡模板文件
[iyunv@localhost data]# cat /data/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.11.174
NETMASK=255.255.255.0
GATEWAY=192.168.11.1
DNS1=114.114.114.114
主机名模板文件
        [iyunv@localhost data]# cat /data/network
        NETWORKING=yes
        HOSTNAME=node1.example.com

我们需要用脚本去处理这两个文件,来满足我们的需求


5.脚本内容:

点击(此处)折叠或打开

  • #!/bin/bash
  • echo -n "请输入要虚拟机的台数例如:node1.example.com 只需输入数字"1" 即可:"
  • read y
  • for x in $(seq $y)
  • do
  • #################################create disk image ########
  • qemu-img convert -c -O qcow2 /data/centos6.5.img /data/node$x.example.com.qcow2
  • cp /data/centos6.5-node1.xml /etc/libvirt/qemu/node$x.example.com.xml
  • sed -i "s/centos6.5-node1/node$x.example.com/g" /etc/libvirt/qemu/node$x.example.com.xml
  • sed -i "s/file\=.*/file\=\'\/data\/node$x\.example\.com\.qcow2\'\/\>/g" /etc/libvirt/qemu/node$x.example.com.xml
  • ###########################vnc  port#######################
  • sed -i "s/5901/590$x/g" /etc/libvirt/qemu/node$x.example.com.xml
  • #################uuid######################################
  • UUID=`uuidgen`
  • sed -i "s/\.*/uuid\>$UUID\<\/uuid\>/g" /etc/libvirt/qemu/node$x.example.com.xml
  • #####################mac###################################
  • MAC=`echo -n 52:12:00; dd bs=1 count=3 if=/dev/random 2>/dev/null |hexdump -v -e '/1 ":%02X"'`
  • sed -i "s/<mac address\=".*/\/g"      ="" etc="" libvirt="" qemu="" node$x.example.com.xml<mac=""
  • ##################define virsh ###########################
  • virsh define /etc/libvirt/qemu/node$x.example.com.xml >/root/vminstall.log 2>&1
  • ##########################change address| change hostname #########
  • sed -i "s/IPADDR=.*/IPADDR=192.168.11.17$x/g" /data/ifcfg-eth0
  • sed -i "s/HOSTNAME=.*/HOSTNAME=node$x.example.com/g" /data/network
  • ###############must : yum install libguestfs-tools ################
  • virt-copy-in -d node$x.example.com /data/network /etc/sysconfig/
  • virt-copy-in -d node$x.example.com /data/ifcfg-eth0 /etc/sysconfig/network-scripts/
  • ######################################################################
  • virsh start node$x.example.com >/root/vminstall.log 2>&1
  • virsh list |grep node$x.example.com
  • echo "node$x.example.com IP:192.168.11.17$x Password:centos"
  • done


6.脚本测试
26719405_1447208515l727.jpg
网络连通性测试
[iyunv@localhost ~]# for  i in {1..4}; do ping -c 1 192.168.11.17$i ; done
26719405_1447208830zxVx.jpg

在母鸡通过vnc 连接虚拟机
vncviewer  192.168.11.8:5901  

26719405_1447210192GZm6.jpg






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-212256-1-1.html 上篇帖子: Kvm虚拟化(4)__为客户机添加virsh console支持 下篇帖子: 调整KVM虚拟机硬盘大小
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表