1、kickstart与pxe简介:

    kickstart是RED HAT推出的一种无人值守的安装模式,它能实现大批量的客户机自动安装。一般情况下,我们在安装linux操作系统时,是以一种交互式应答的界面模式来决定我们的系统该如何安装,比如安装过程显示的语言,使用的键盘类型,所在的时区信息,要预先安装的软件包,磁盘分区信息等等类容。而kickstart所完成的功能就是将所有必须要回答的问题预先写入一张叫做ks.cfg的配置表中,然后引导进程找到这个配置表自动引导剩下的安装工作以及应答,实现自动化安装。

    pxe是Intel公司研发的预启动执行环境技术,结合kickstart能实现客户端自动获得位于网络上的ks.cfg文件,引导安装文件等,实现用户只需要开机就能自动安装操作系统的轻便工作,无需再作额外的配置,即可轻松的完成大批量的客户端安装。


2、kickstart+pxe的实现流程:

wKioL1W4eFvxWQt8AAG1Lzz8_f8925.jpg


3、实验环境:

    VMware workstations 10  +  CentOS6.5-i386

    DHCP服务器地址:192.168.47.100

    TFTPfFF服务器地址:192.168.47.100

    FTP服务器地址:192.168.47.100

    安装树目录:/var/ftp/pub

    引导程序目录:/var/lib/tftpboot

    ks.cfg位置:/var/ftp/


4:实验步骤:

    1)、安装DHCP服务器,并配置相关信息:

[root@fcy ~]# yum install dhcp -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * c6-media: 
Setting up Install Process
Resolving Dependencies
--> Running transaction check
......(过程略)
Installed:
  dhcp.i686 12:4.1.1-38.P1.el6.centos                                      

Dependency Installed:
  portreserve.i686 0:0.0.4-9.el6

    打开DHCP的主配置文件(/etc/dhcp/dhcpd.conf),做如下修改:

        由于新建的DHCP服务主配置文件无内容,所以在底行模式导入系统样板文件:


wKioL1W4evexTggWAAFvf3Vhhd8834.jpg

    保留如下配置即可:

wKiom1W4fKOTzzNgAAIBtns2ELg260.jpg

    启动DHCP服务器:

[root@fcy ~]# service dhcpd start
Starting dhcpd:                                            [  OK  ]

    2)、安装FTP服务器:

[root@fcy ~]# yum install vsftpd tftp-server -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * c6-media: 
Setting up Install Process
......(过程略)
Installed:
  tftp-server.i686 0:0.49-7.el6                                            

Dependency Installed:
  xinetd.i686 2:2.3.14-39.el6_4                                            

Complete!

        由于tftp是依赖于xinetd的进程,所以配置文件在/etc/xinetd.d/tftp下:

wKioL1W4f9GC9QZGAAEA29AwLzA688.jpg

        启动tftp服务器:

[root@fcy ~]# service xinetd start
Starting xinetd:                                           [  OK  ]

        端口69已经启动:

wKiom1W4fo3zATOcAAB1ol45ocs413.jpg

    

    3)、导入引导内容:

        找到tftp服务器的主目录/var/lib/tftpboot/,导入光盘上的isolinux目录下的内核和驱动文件

wKioL1W4gajjEOLIAAGn_Re12sM588.jpg


        安装光盘上的syslinux软件包,得到网络引导文件pxelinux.0

[root@fcy tftpboot]# yum install syslinux -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * c6-media: 
Setting up Install Process
Resolving Dependencies
--> Running transaction check
......(过程略)
Installed:
  syslinux.i686 0:4.02-8.el6                                               

Dependency Installed:
  mtools.i686 0:4.0.12-1.el6                                               

Complete!

        找到pxelinux.0这个文件(),拷贝到tftp服务器的根目录

wKioL1W4gu_BdnssAAFxYE3f8b8394.jpg

        创建目录pxelinux.cfg目录,将光盘上的网络引导程序拷贝进去并重命名为default:

[root@fcy tftpboot]# mkdir pxelinux.cfg
[root@fcy tftpboot]# cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default
[root@fcy tftpboot]# ll
total 34944
-r--r--r--. 1 root root 31742048 Jul 29 23:26 initrd.img
-rw-r--r--. 1 root root    26828 Jul 29 23:31 pxelinux.0
drwxr-xr-x. 2 root root     4096 Jul 29 23:34 pxelinux.cfg
-r-xr-xr-x. 1 root root  4002656 Jul 29 23:26 vmlinuz

        修改引导程序的内容

default linux    #将默认的引导菜单修改为第一个linux菜单
#prompt 1
timeout 60        #修改引导等待时间为60秒

display boot.msg

menu background splash.jpg
menu title Welcome to CentOS 6.5!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

label linux
  menu label ^Install or upgrade an existing system
  menu default
  kernel vmlinuz
  append initrd=initrd.img  ks=ftp://192.168.47.100/ks.cfg    #指定ks.cfg文件的位置,注意不要换行,不然会无法找到ks.cfg文件
  ......


    4)、安装system-config-kickstart,生成自动化安装文件ks.cfg:

[root@fcy pxelinux.cfg]# yum install system-config-kickstart -y
    ......(过程略)

        生成ks.cfg文件:

[root@fcy var]# system-config-kickstart
Xlib:  extension "RANDR" missing on display "localhost:12.0".
/usr/share/system-config-kickstart/kickstartGui.py:103: GtkWarning: GtkSpinButton: setting an adjustment with non-zero page size is deprecated
  xml = gtk.glade.XML ("/usr/share/system-config-kickstart/system-config-kickstart.glade", domain="system-config-kickstart")
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * c6-media: 
Checking for new repos for mirrors

    注意:此时会弹出一个对话框,点击左侧倒数第三个选项,如果无法发现可以安装的软件包,请重新配置好本地的yum源:

wKiom1W4hYDT-ZlOAAJYwIe_LMM491.jpg

    基本配置:

wKioL1W4iTrhaTf_AAMhbg_3YRo806.jpg

     安装方式:

wKiom1W4iH2APzNzAAHjOU_bluE703.jpg

    引导记录设置:

wKioL1W4i3qjuA61AAHMNBJBlpY867.jpg

    分区设置:

wKioL1W4jUmzYpLiAAJJ_6hBJyM039.jpg

    网络设置:

wKiom1W4i-uxlMjnAAFCpLJi5Qw537.jpg

    网络安全设置:

wKioL1W4j0DhsXSOAAEPRmt2FZA564.jpg

wKiom1W4jVGgH90FAAEIKlhx0gc416.jpg

wKioL1W4j0CRk7sUAAEPRNOeOQ0490.jpg


    预安装包选择(按需选择):

wKioL1W4j3KTZ6t-AAJIQ6VIgLk927.jpg

    安装后运行脚本(主要功能是将网卡内容主机名称固定):

#!/bin/bash
string=`ifconfig  eth0  |grep 'inet\>'   |awk  '{print  $2}'`
num=${string##*.}
sed  -i  -e  "s@HOSTNAME.*@HOSTNAME=pxe$num.a.com@"   /etc/sysconfig/network
echo  "DEVICE=eth0\nONBOOT=yes\nBOOTPROTO=static\nIPADDR=192.168.47.$num\nNETMASK=255.255.255.0\nGATEWAY=192.168.47.254\n"  >/etc/sysconfig/network-scripts/ifcfg-eth0

wKioL1W4kxWwT0qTAAHVSoGtJTo500.jpg

    生成ks.cfg文件并放置在/root目录下

wKioL1W4k2fzQ1JhAADy1ck5O6A785.jpg


    在ks.cfg文件中添加一句poweroff,表示安装完成后将系统设置为关闭状态


    4)、设置FTP服务器:

        将光盘上的内容拷贝到FTP服务器上(/var/ftp/pub)

[root@fcy ~]# cp -r /media/cdrom/*  /var/ftp/pub

        将修改好的ks.cfg文件拷贝到FTP服务器的根目录下(/var/ftp/)

[root@fcy ~]# cp /root/ks.cfg /var/ftp/
[root@fcy ~]# ll /var/ftp
total 8
-rw-r--r--. 1 root root 1403 Jul 30 00:48 ks.cfg
drwxr-xr-x. 6 root root 4096 Jul 29 23:43 pub

        启动FTP服务:

[root@fcy ~]# service vsftpd start
Starting vsftpd for vsftpd:                                [  OK  ]


    5)、安装测试:

        创建一个新的虚拟机,并设置硬件属性,其中网卡注意与服务器保持一致:

wKioL1W4lkGQBIb-AAGn7RoJAes901.jpg

        点击选项栏的虚拟机--》电源---》启动时进入BIOS,然后启动虚拟机

wKiom1W4lPKRG6BYAAFaagqJZRo947.jpg

        

        进入BIOS后选择BOOT的启动顺序,将网络启动移到最上面,按F10保存退出:

wKiom1W4lWqQtEoEAAEZEk0xZ6E461.jpg


        通过MAC地址向DHCP服务器获取动态地址:

wKioL1W4mduwafFlAADYepX4O18630.jpg


        找到FTP服务器,并下载ks.cfg文件:

wKioL1W4mf6wBgBEAABpsUFzQQ4793.jpg


        开始自动化安装操作系统:

wKiom1W4mCqT9d1cAADidqTgoqE370.jpg


        由于设置原因,安装完成后会自动关闭系统,重新启动系统,进入查看主机名和网卡信息:

wKiom1W4mdbg17tFAACZsIbq770768.jpg


5、总结

    在做实验之前,一定要了解kickstart和pxe的工作过程,以及需要哪些服务的支持和软件、文件的引导。只有这样,才能正确、快速的搭建一个无人值守安装的服务。