PXE自动化装机和构建、使用KVM虚拟化平台



KVM虚拟化服务器(真机或高配虚拟机(内存>4G)

    操作系统:CentOS 6.5  ==> 关闭 iptables 防火墙、关闭SELinux机制,进入图形桌面

    网卡连接:eth0 (VMnet4)==> 关闭 NetworkManager 服务

    主机名:kvmsvr.tarena.com

    IP地址:192.168.4.254/24

    分区示例:

        /boot  200MB、SWAP 8GB、/  80GB、

        /var/ftp  40GB (逻辑卷 /data/vg_data/lv_data)


 

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

一:服务的准备工作

[root@pxesvr ~]# service iptables stop  #关闭防火墙

[root@pxesvr ~]# service iptables save

[root@pxesvr ~]# chkconfig iptables off

[root@pxesvr ~]# setenforce 0  #关闭selinux

[root@pxesvr ~]# vim /etc/selinux/config  #修改文件永久关闭selinux 

SELINUX=permissive

[root@pxesvr ~]# vim /etc/sysconfig/network

HOSTNAME=kvmsvr.tarena.com

[root@pxesvr ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0  #修改IP地址

IPADDR=192.168.4.254

NM_CONTROLLED=no

[root@pxesvr ~]# service NetworkManager stop  #关闭 NetworkManager服务

[root@pxesvr ~]# chkconfig NetworkManager off 

[root@pxesvr ~]# reboot


二:在KVM服务器上为CentOS 6.5客户机提供 YUM 源


1. 安装、启用 vsftpd 服务,允许匿名下载

[root@kvmsvr ~]# rpm  -ivh  /光盘挂载点/Packages/vsftpd*.rpm

[root@kvmsvr ~]# service  vsftpd  restart

[root@kvmsvr ~]# chkconfig  vsftpd  on


2. 插入CentOS 6.5光盘,将其中所有文档部署到 FTP 目录

[root@kvmsvr ~]# mkdir  -p  /var/ftp/pub/iso/centos/6.5/

[root@kvmsvr ~]# cp  -rf  /misc/cd/*  /var/ftp/pub/iso/centos/6.5/

准备 RHEL 5.10 安装源(FTP方式提供)

[root@kvmsvr ~]# mkdir -p /var/ftp/pub/iso/redhat/5.10/

.. .. //更换为 RHEL 5.10光盘

[root@kvmsvr ~]# cp  -rf  /misc/cd/*  /var/ftp/pub/redhat/5.10/


3.配置第三方yum源

[root@kvmsvr ~]# mkdir /var/ftp/pub/other/

将办公软件包放入这个文件夹中

[root@kvmsvr ~]# createrepo -s sha1 /var/ftp/pub/other/  # -s sha1 是针对低版本的linux使用第三方yum的一个算法


4. 在本机测试,确保 YUM 源可用

[root@kvmsvr ~]# vim /etc/yum.repos.d/CentOS-Debuginfo.repo 

[debug]

name=CentOS-6 - Debuginfo

baseurl=ftp://192.168.4.254/pub/iso/centos/6.5

gpgcheck=0

#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Debug-6

enabled=1

[other-RPMS]

name=Other Packages

baseurl=ftp://192.168.4.254/pub/other

enabled=1

gpgcheck=0


[root@kvmsvr ~]# yum  repolist

.. ..


5. 将YUM仓库配置文件部署到 FTP 目录备用

[root@kvmsvr ~]# mkdir  -p  /var/ftp/pub/pxe/

[root@kvmsvr ~]# cp  /etc/yum.repos.d/centos6.repo  /var/ftp/pub/pxe/


[root@kvmsvr ~]# wget  ftp://192.168.4.254/pub/pxe/centos6.repo

.. .. //确认可下载


[root@kvmsvr ~]# vim /var/ftp/pub/pxe/rhel5.repo  #提供 RHEL 5.10客户机的YUM仓库文件

[rhel5]

name=rhel5 - Debuginfo

baseurl=ftp://192.168.4.254/pub/iso/redhat/5.10/Server

gpgcheck=0

#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Debug-6

enabled=1

[other-RPMS]

name=Other Packages

baseurl=ftp://192.168.4.254/pub/other

enabled=1

gpgcheck=0


[root@kvmsvr ~]# wget  ftp://192.168.4.254/pub/pxe/rhel5.repo

.. .. //确认下载可用




三:安装 KVM 虚拟化相关软件、启用服务


[root@kvmsvr ~]# yum  -y  groupinstall  "Virtualization"  "Virtualization Client"  "Virtualization Tools" "Virtualization Platform" 

.. ..

[root@kvmsvr ~]# service  libvirtd  restart

[root@kvmsvr ~]# chkconfig  libvirtd  on



四:配置 PXE 装机服务器


1. 配置DHCP服务器

[root@kvmsvr ~]# yum  -y  install  dhcp

[root@kvmsvr ~]# vim  /etc/dhcp/dhcpd.conf 

option domain-name "tarena.com";

option domain-name-servers 192.168.4.254;

default-lease-time 7200;

max-lease-time 14400;

subnet  192.168.4.0  netmask  255.255.255.0  {

    range  192.168.4.10 192.168.4.50;

    option routers 192.168.4.254;

    next-server  192.168.4.254;

    filename  "pxelinux.0";

}

[root@kvmsvr ~]# service  dhcpd  restart

[root@kvmsvr ~]# chkconfig  dhcpd  on


2.配置DNS服务器

[root@kvmsvr ~]# yum -y install bind bind-chroot

[root@kvmsvr ~]# service named restart

[root@kvmsvr ~]# chkconfig named on

[root@kvmsvr ~]# mv /etc/named.conf /etc/named.conf.bak

[root@kvmsvr ~]# vim /var/named/chroot/etc/named.conf 

options {

        directory "/var/named";

};

zone "tarena.com" IN {                                          //定义正向区域

        type master;

        file "tarena.com.zone";

};

zone "4.168.192.in-addr.arpa" IN {                              //定义反向区域

        type master;

        file "192.168.4.arpa";

};

[root@kvmsvr ~]# cd /var/named/chroot/var/named/

[root@kvmsvr named]# vim tarena.com.zone

@ SOA tarena.com.  root.tarena.com.  (

        2014072101

        8H

        2H

        4H

        1D

)

@       IN      NS      kvmsvr.tarena.com.

kvmsvr  IN      A       192.168.4.254

ftp     IN      CNAME   pxesvr

$GENERATE  10-50        pc$     IN      A       192.168.4.$

[root@kvmsvr named]# vim 192.168.4.arpa

$TTL 1D

@ SOA tarena.com.  root.tarena.com.  (

        2014072101

        8H

        2H

        4H

        1D

)

@       IN      NS      kvmsvr.tarena.com.

254     IN      PTR     kvmsvr.tarena.com.

$GENERATE  10-50        $       IN      PTR     pc$.tarena.com.

[root@kvmsvr named]# service named restart


3.配置TFTP服务组件

1)安装相关软件包

[root@kvmsvr ~]# yum  -y  install  tftp-server

[root@kvmsvr ~]# chkconfig  tftp  on

[root@kvmsvr ~]# chkconfig  xinetd  on

[root@kvmsvr ~]# service  xinetd  restart


2)准备引导文件

[root@kvmsvr ~]# yum  -y  install  syslinux

[root@kvmsvr ~]# cp  /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/  //网卡启动文件


[root@kvmsvr tftpboot]# mkdir centos6     #存放centos6的内核和初始化镜像的目录

[root@kvmsvr tftpboot]# mkdir rhel5       #存放redhat5.10内核和初始化镜像的目录

[root@kvmsvr ~]# cd  /var/ftp/pub/iso/centos/6.5/isolinux/

[root@kvmsvr isolinux]# cp  initrd.img  vmlinuz  /var/lib/tftpboot/  //给CentOS6客户机用的内核及PXE相关文件


[root@kvmsvr ~]# cd  /var/ftp/pub/iso/redhat/5.10/isolinux/

[root@kvmsvr isolinux]# cp  vmlinuz  initrd.img  /var/lib/tftpboot/rhel5/  //给RHEL5.10客户机用的内核和初始化镜像


3)准备PXE启动菜单

准备图形支持模块、背景图片

[root@pxesvr ~]# yum  -y  install  syslinux

[root@pxesvr ~]# cp  /usr/share/syslinux/vesamenu.c32  /var/lib/tftpboot/

[root@pxesvr ~]# cp  /usr/share/doc/syslinux-4.02/sample/syslinux_splash.jpg  /var/lib/tftpboot/splash.jpg

准备菜单文件

[root@kvmsvr isolinux]# mkdir  -p  /var/lib/tftpboot/pxelinux.cfg/

[root@kvmsvr isolinux]# cd  /var/lib/tftpboot/pxelinux.cfg/

[root@kvmsvr pxelinux.cfg]# vim  default

default   rhel5

timeout 300


UI  vesamenu.c32

menu background splash.jpg

menu title Welcome to PXE Installation Server !


label rhel5

        menu label Install RH^EL 5.9 ( Kickstart )

        kernel  rhel5/vmlinuz

        append  ks=ftp://192.168.4.254/pub/pxe/ks-el5.cfg  initrd=rhel5/initrd.img


label centos6

        menu label Install ^CentOS 6.5 ( Kickstart )

        kernel  centos6/vmlinuz

        append  ks=ftp://192.168.4.254/pub/pxe/ks-cos6.cfg  initrd=centos6/initrd.img


label rescue

        menu label ^Rescue Installed System

        kernel  rhel5/vmlinuz

        append initrd=rhel5/initrd.img rescue


4)测试TFTP下载,确保可用

[root@kvmsvr ~]# yum  -y  install  tftp  //安装 TFTP 客户端命令

[root@kvmsvr ~]# tftp  192.168.4.254  -c  get  pxelinux.0  //连接服务端,测试下载文件

[root@kvmsvr ~]# ls  -lh  pxelinux.0  //确认下载结果

-rw-r--r--. 1 root root 27K 8月  16 17:50 pxelinux.0



5. 提供自动应答配置文件

1)找一台RHEL 5.10主机,根据模板创建应答文件

     新装系统时将root口令设为123456

    自动填序列号、初始化磁盘并分区、安装桌面环境

    完成安装后能自动下载rhel5.repo配好YUM仓库


[root@el5pc ~]# yum  -y  install  system-config-kickstart

[root@el5pc ~]# system-config-kickstart


安装序列号:2515dd4e215225dd  //自动填入安装序号

安装方法选择ftp

服务器:192.168.4.254

目录:/pub/iso/redhat/5.10

安装后脚本

rm  -rf  /etc/yum.repos.d/*

    wget  ftp://192.168.4.254/pub/pxe/rhel5.repo  -O  /etc/yum.repos.d/rhel5.repo

    yum  clean  all

  yum -y install libreoffice4.1*


将上述 ks-el5文件拷贝到 KVM 服务器的 FTP 目录下

[root@kvmsvr ~]# ls  /var/ftp/pub/pxe/ks-el5.cfg

.. ..

[root@kvmsvr ~]# wget  ftp://192.168.4.254/pub/pxe/ks-el5.cfg

.. .. //确保可下载

2)将Centos6.5的主机创建应答文件

[root@el5pc ~]# yum  -y  install  system-config-kickstart

[root@el5pc ~]# system-config-kickstart

安装方法选择ftp

服务器:192.168.4.254

目录:/pub/iso/centos/6.5/

安装后脚本

rm  -rf  /etc/yum.repos.d/*

    wget  ftp://192.168.4.254/pub/pxe/centos6.repo  -O  /etc/yum.repos.d/centos6.repo

    yum  clean  all

  yum -y install libreoffice4.1*


将上述 ks-el5文件拷贝到 KVM 服务器的 FTP 目录下

[root@kvmsvr ~]# ls  /var/ftp/pub/pxe/ks-cos6.cfg

.. ..

[root@kvmsvr ~]# wget  ftp://192.168.4.254/pub/pxe/ks-cos6.cfg

.. .. //确保可下载




五:建立桥接网卡、虚拟机存储


1. 建立桥接网卡 br0

[root@kvmsvr ~]# cp  /etc/sysconfig/network-scripts/ifcfg-{eth0,br0}


[root@kvmsvr ~]# vim  /etc/sysconfig/network-scripts/ifcfg-br0  //调整 br0 配置

DEVICE=br0  //新建的连接名称

TYPE=Bridge  //连接类型

ONBOOT=yes

NM_CONTROLLED=no  //不接受NetworkManager管理

BOOTPROTO=static

IPADDR=192.168.4.254  //设为原eth0网卡的IP地址

PREFIX=24


[root@kvmsvr ~]# vim  /etc/sysconfig/network-scripts/ifcfg-eth0  //调整 eth0 配置

DEVICE=eth0

TYPE=Ethernet

.. ..

NM_CONTROLLED=no  //不接受NetworkManager管理

BRIDGE=br0  //桥接到 br0 


[root@kvmsvr ~]# service  network  restart

[root@kvmsvr ~]# ifconfig  br0

br0   Link encap:Ethernet  HWaddr 00:0C:29:73:9A:C7

         inet addr:192.168.4.254  Bcast:192.168.4.255  Mask:255.255.255.0

.. ..



!!!! 备用操作提示:命令建立桥接网卡

[root@kvmsvr ~]# brctl  addbr  br0

[root@kvmsvr ~]# brctl  addif  br0  eth0




2. 准备虚拟机磁盘 

    建立一个不小于40G的文件系统,挂载到 /data/


[root@kvmsvr ~]# mkdir  -p  /data/images

[root@kvmsvr ~]# dd  if=/dev/zero  of=/data/images/node1.img  bs=10M  count=1000

.. .. //用来装第一个RHEL 5.10虚拟机



六:KVM 虚拟机管理(virt-manager工具)


1. 运行虚拟机管理器

    !!!! 桌面环境 --> 应用程序 --> 系统工具 --> 虚拟系统管理器

    !!!! 或直接运行 virt-manager 命令打开

    —— 默认连接到本机的KVM服务平台进行管理


2. 新建一台虚拟机

    名称:rh5_n1

    内存:512M

    网卡:桥接(br0)

    磁盘:/data/images/node1.img



3. 通过PXE方式为此虚拟机安装系统

    安装过程全自动,完成后登入系统

    检查 YUM 等安装后设置是否自动配置好

    .. ..



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