1、kickstart与pxe简介:
kickstart是RED HAT推出的一种无人值守的安装模式,它能实现大批量的客户机自动安装。一般情况下,我们在安装linux操作系统时,是以一种交互式应答的界面模式来决定我们的系统该如何安装,比如安装过程显示的语言,使用的键盘类型,所在的时区信息,要预先安装的软件包,磁盘分区信息等等类容。而kickstart所完成的功能就是将所有必须要回答的问题预先写入一张叫做ks.cfg的配置表中,然后引导进程找到这个配置表自动引导剩下的安装工作以及应答,实现自动化安装。
pxe是Intel公司研发的预启动执行环境技术,结合kickstart能实现客户端自动获得位于网络上的ks.cfg文件,引导安装文件等,实现用户只需要开机就能自动安装操作系统的轻便工作,无需再作额外的配置,即可轻松的完成大批量的客户端安装。
2、kickstart+pxe的实现流程:
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服务主配置文件无内容,所以在底行模式导入系统样板文件:
保留如下配置即可:
启动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下:
启动tftp服务器:
[root@fcy ~]# service xinetd start Starting xinetd: [ OK ]
端口69已经启动:
3)、导入引导内容:
找到tftp服务器的主目录/var/lib/tftpboot/,导入光盘上的isolinux目录下的内核和驱动文件
安装光盘上的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服务器的根目录
创建目录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源:
基本配置:
安装方式:
引导记录设置:
分区设置:
网络设置:
网络安全设置:
预安装包选择(按需选择):
安装后运行脚本(主要功能是将网卡内容主机名称固定):
#!/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
生成ks.cfg文件并放置在/root目录下
在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)、安装测试:
创建一个新的虚拟机,并设置硬件属性,其中网卡注意与服务器保持一致:
点击选项栏的虚拟机--》电源---》启动时进入BIOS,然后启动虚拟机
进入BIOS后选择BOOT的启动顺序,将网络启动移到最上面,按F10保存退出:
通过MAC地址向DHCP服务器获取动态地址:
找到FTP服务器,并下载ks.cfg文件:
开始自动化安装操作系统:
由于设置原因,安装完成后会自动关闭系统,重新启动系统,进入查看主机名和网卡信息:
5、总结
在做实验之前,一定要了解kickstart和pxe的工作过程,以及需要哪些服务的支持和软件、文件的引导。只有这样,才能正确、快速的搭建一个无人值守安装的服务。