PXE、kickstart实现Linux安装自动化

    下面我要介绍的是一个基于网络的PXE和kickstart自动安装系统的实验,这也是我从学习linux不久,一直想要实现的功能,这里,我将实验过程和自己的理解贴出来。


实验拓扑图如下所示:

wKiom1PYtcjR3sfnAAJuzvwUoB0597.jpg


实验环境准备:

wKiom1PYtnjTYbJyAABfWPQWpLg691.jpg

注意:以上的三台服务器和一台普通PC都要位于同一个网段,而且PC先不配置地址


实现过程原理讲解:(如有不懂之处,先理解,做完实验就会理解,建议看看)

  1、普通PC启动后,将其启动项调为基于网卡启动,如下图

  wKioL1PYuPih9N_KAADOfiCuAkA745.jpg

  

  2、 由于网卡本身还没有地址,然后,它就会向它所在的局域网内发起DHCP DISCOVER的广播包


  3、 然后DHCP服务器就会响应它,经过相互确定后,会给这台PC的网卡分配一个IP地址,于此同时,DHCP服务器会告诉网卡有下一个服务器,然后指定网卡到下一个服务器上去下载某个文件。


  4、网卡获得地址后,就会去下一个服务器,即TFTP服务器上去下载一个为pexlinux.0的文件,然后,下载至本地(网卡内部嵌有TFTP客户端程序),pexlinux.0的功能就相当于grub引导程序了


  5、网卡下载到pxelinux.0文件后,在普通PC的内存中展开,然后就需要kernel和ramdisk,到TFTP服务器上去下载这两个文件,启动虚拟的系统。


  6、接下来,下载.cfg的文件,实现自动安装,该文件中指定了安装的源服务器,即上面的Web服务器,我们把Web服务器当成了yum源,之后普通的PC就会到Web上去下载安装时需要的包。


实验过程:

   一、服务器环境搭建

      1、 配置DHCP服务器,子网为:192.168.100.0,地址池为:192.168.100.10-           192.168.100.30,我们还要将TFTP服务器和Web服务器的地址进行绑定。

         I、在DHCP服务上运行setup命令,配置DHCP地址。      

 wKioL1PYvBeSqqVDAAGFFQcLIUg977.jpg       

        II、然后把系统的安装盘挂载到dhcp这台主机上,安装DHCP服务。

#mkdir/media/cdrom             #创建文件夹,以供挂载
#mount/dev/cdrom /media/cdrom  #将光盘进行挂载
#cd /media/cdrom/Packages      
#ls | grep dhcp                #查看DHCP服务的包有哪些
#rpm �Civh dhcp-4.1.1-38.P1.e16.centos.x86_64.rpm     #这里我们只需要安装这个包


        III、接下来,修改DHCP的配置文件,并启动服务

        注意:DHCP服务的配置文件在/etc/dhcp/下,为dhcpd.conf,默认情况下,该配置文件为空,但是,

        安装服务时,给我们提供了一个模板://usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample

#cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
#对原来的文件进行覆盖

        编辑/etc/dhcp/dhcpd.conf,配置如下,修改时,不要忘记分号";"

optiondomain-name "mageedu.com";
optiondomain-name-servers 192.168.100.10, 192.168.0.254;
 
default-lease-time86400;
max-lease-time 100000;
 
   subnet192.168.100.0 netmask 255.255.255.0 {          #指定子网、掩码
       range 192.168.100.10 192.168.100.30;               #指定地址池信息
       option routers 192.168.100.10;                     #网关地址
 
        #将Web服务器和TFTP服务器进行地址绑定
       host Tftp {
         hardware ethernet 00:0C:29:9F:6A:25;     #在TFTP服务器下通过ifconfig查看
         fixed-address 192.168.100.11;
        }
       host Web {
          hardware ethernet 00:0C:29:CD:B8:B9;     #在TFTP服务器下通过ifconfig查看   
          fixed-address 192.168.100.12;
        }
    }

        保存退出,之后再检查DHCP的配置文件是否错误

#service dhcpd configtest
Syntax: OK #语法正确,可以启动服务了
#service dhcpd start
        
#把dhcp服务加入开机自动启动       
#chkconfig dhcpd on
#chkconfig --list | grep dhcp
dhcpd          	0:off	1:off	2:on	3:on	4:on	5:on	6:off


        IV:开启Web服务器和Tftp服务器,查看其IP地址

           TFTP服务器自动获取到的IP地址       

        wKiom1PYwKKAy2rNAAE6B9_xMxA163.jpg

            Web自动获取到的IP地址

         wKiom1PYwSXgc1mQAAEdYxACOxY357.jpg


   2、Web服务器上挂载光盘,安装httpd服务,建立yum

#mkdir /media/cdrom                                 #创建目录,作为挂载点
#mount /dev/cdrom  /media/cdrom                     #进行挂载
#cd  /media/cdrom/Packages                          #切换到软件包的目录
#rpm -ivh httpd-2.2.15-29.el6.centos.x86_64.rpm     #安装web程序,httpd
#mkdir  /var/www/html/centos6                       #在web目录下创建目录

    绑定/media/cdrom/var/www/html/centos6,这样,我们的Web上就有yum源了,其实就是安装光盘

#mount --bind /media/cdrom  /var/www/html/centos6

        接下来启动httpd服务,并把它设为开机自动启动:

#service httpd  start
#ss -tnl                  #查看80端口是否在监听
#chkconfig  httpd  on

        

       重要的还要一步,挂载是不会自动执行的,我们可以写入/etc/rc.d/rc.local文件中

mount /dev/cdrom  /media/cdrom
mount --bind  /media/cdrom  /var/www/html/centos6

        这样,只要系统启动完成后,这两步就会执行,是系统启动的最后两步


   3、TFTP服务器上修改yum的配置文件,原来的备份,然后安装tftp-server服务

#cd /etc/yum.repos.d/
#mkdir  backup
#mv * backup               #备份原有的yum配置文件
    
#vim pxe.repo
 [base]
 name=the pexautoinstall yum
 baseurl=http://192.168.100.12/centos6/        #指定Web为其yum源 
 enabled=1
 gpgcheck=0

     安装TFTP服务

#yum  install  tftp-server  #这是服务端程序

         扩展:这里的tftp服务是由xinetd超级进程管理的

 如何启动TFTP服务呢,编辑如下:

#vim /etc/xinetd.d/tftp
disable                 = no   #默认为yes,我们修改为no

    保存上面文件,并且启动xinetd服务

#service xinetd start
#chkconfig xinetd on
#ss  -unl               #查看服务是否启动,tftp监听的是UDP的69号端口


   二、上面的三步主要是搭建了这三个服务器,下面,我们就开始进入正题,搭建PXE环境。

    以下步骤,未特殊说明,都在TFTP服务器上进行

    1、将系统的安装光盘挂载到TFTP服务器上

#mkdir /media/cdrom
#mount /dev/cdrom  /media/cdrom            #挂载

    2、提供PXE工作环境

       普通PC要先到TFTP服务器上下载pexlinux.0的文件,拿回来,放到内存中展开之后就需要kernelramdisk文件,再需要安装文件。

      I、pexlinux.0这个文件要syslinux程序生成

#rpm �Cqa |grep syslinux      
#yuminstall syslinux
#rpm�Cql syslinux
        #pexlinux.0文件在/usr/share/syslinux/下

       网卡能够下载pxelinux.0,TFTP的目录在/var/lib/tftpboot/,所有拷贝过去

# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

     3、提供引导内核等文件

#cd/var/lib/tftpboot       #将下列文件都拷贝到该目录
#cp /media/cdrom/images/pxeboot/vmlinuz .        #内核
#cp/media/cdrom/images/pxeboot/initrd.img .      #ramdisk
#cp /media/cdrom/isolinux/splash.jpg .            #安装系统的图片
#cp /media/cdrom/isolinux/vesamenu.c32 .          #安装时显示的菜单
#cp /media/cdrom/isolinux/boot.msg .             #

  

    4、最后我们要提供kf文件(在Web服务下进行)

      ks文件是由kickstart生成的文件,在linux上可以用工具system-config-kickstart生成

 xwindow下启动system-config-kickstart工具

        我们可以导入当前系统安装时所生成的文件,在/root目录下,名为anaconda.cfg

       然后更改部分内容,下面这项,关于url的一定要改一下,原来的不一定适应你的环境wKioL1PYy-Ozv_rdAAEug76XP50597.jpg

保存称为.cfg结尾的文件,例如:ks.cfg,保存至/var/www/html/目录下,即web服务根下


注意:如果在安装过程中,如果大家出现了问题,一般是ks.cfg文件配置有问题,可能是分区的被注释掉了,把前面的"#"删除掉,由于每个人的情况可能不一样,所有遇到问题就在网上多查查吧

    

    5、更改boot时的选项,TFTP服务器上操作

# mkdir /var/lib/tftpboot/pxelinux.cfg/
# cp/media/cdrom/isolinux/isolinux.cfg ./pxelinux.cfg/default
    label linux
      menu label ^Install orupgrade an existing system
      menu default
     kernel vmlinuz
      append textinitrd=initrd.img text ks=http://192.168.100.12/ks.cfg    #添加内容

    6、最后一点,在DHCP的配置文件下指定下一个服务器,和获取的文件

    subnet 192.168.100.0 netmask 255.255.255.0 {
      range 192.168.100.10 192.168.100.30;
      option routers 192.168.100.10;
        
      #指定TFTP服务器的地址,指定下载的文件为pexlinux.0
      next-server 192.168.100.11;
      filename "pxelinux.0";

    再次加载DHCP的配置文件:

#service  dhcpd  force-reload


三、测试阶段:

    开启普通PC,它会自动以PXE的方式运行,下面,我将以图片的形式展示

   

 wKiom1PY2SfRSt0IAACxjGMXu60908.jpg

    


wKioL1PY2l6xlTfPAACCoZlPM4U767.jpg


  安装各种安装包

wKioL1PY2oKT2DLOAACvpBC6kmw693.jpg


安装结束后,系统会自动重启,下面就是平时Linux的开机环境了,是不是很熟悉。

wKioL1PY2rnBkDsaAABHH-Dn0cU994.jpg


wKiom1PY2bDhKWMqAABAuscpyoo571.jpg



   总结:这个PXE的实验要求思路要清除,所以,大家在做实验之前,一定要理清思路,然后再开始,遇到问题了,一定要多多自己解决,解决问题才能成长。

你可能感兴趣的:(pxe,kickstart,网络安装Linux,linux自动安装)