HTTP+TFTP+DHCP+Kickstart+PXE

从网络引导系统的做法可以不必从硬盘、软盘或者CDROM光盘,而是完全通过网络来引导一台计算机。这对于安装来说很方便,因为它意味着你可以坐在桌子旁边,不必走到机器那里插入CDROM光盘或者软盘,就可以从网络上引导位于别处的一台机器。

PXE的作用就像是在网卡上ROM里的一小小操作系统,它通过一个标准API把自已的网络引导功能提供给系统的BIOS,就可以通过网络启动linuxPXE网络引导过程:一台主机广播一个设置了PXE选项的DHCP“发现”请求,然后一台DHCP服务器用一个包含有PXE选项的DHCP包来响应它(引导服务器的IP地址和引导文件的名字)。客户机通过TFTP下载它的引导文件,然后执行这个引导文件。

Red Hat用于执行自动安装的工具叫做kickstart,system-config-kickstart工具生成kickstart的配置文件ks.cfg.

实验环境:准备两台虚拟机,一台作为测试环境(Centos6.3IP192.168.50.1),另一台作为被安装端,设置网络引导安装。

安装所需要的服务及修改相应配置文件:

1.       yum来安装所需要的软件包,默认配置即可(这个方法要保证该测试机能够上网):

2.安装httpd服务以及开启服务,设置为开机自动启动。

[root@test1 ~]# yum install httpd  –y

[root@test1 ~]# /etc/init.d/httpd start

[root@test1 ~]# chkconfig httpd on

[root@test1 ~]#cd /var/www/html

[root@test1 ~]#mkdir data && chown apache.apache *

3.安装TFTP,修改tftp配置文件及开启服务

[root@test1 ~]# yum install tftp  –y

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

[root@test1 ~]#vim /etc/xinet.d/tftp

修改配置文件里面的1314

接着重新启动xinetd服务,然后查看服务端口是否打开。

[root@test1 ~]# /etc/init.d/xinetd restart

[root@test1 ~]#lsof -i :69

OKTFTP服务正常启动。重启Xinetd服务并设为开机自启动

[root@test1 ~]#service xinetd restart

[root@test1 ~]#chkconfig xinetd on

4.安装dhcp,修改配置文件及开启服务:

[root@test1 ~]# yum install dhcp  –y

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

78行是网络引导需要的配置,必须要有的。

接着启动DHCP,设置为开机启动.若启动失败则在/var/log/message中查看错误日志。

[root@test1 ~]# /etc/init.d/dhcpd start

[root@test1 ~]# chkconfig dhcpd on

准备工作完成,我们开始配置Kickstart

[root@test1 ~]# mkdir –p /tftpboot/pxelinux.cfg

[root@test1 ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/

----如果找不到syslinux目录,需要安装包yum  install  system-config-kickstart.noarch  –y

[root@test1 ~]# cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default

[root@test1 ~]# cp /mnt/p_w_picpaths/pxeboot/initrd.img /tftpboot/

[root@test1 ~]# cp /mnt/p_w_picpaths/pxeboot/vmlinuz /tftpboot/

[root@test1 ~]# chmod 644 /tftpboot/pxelinux.cfg/default

[root@test1 ~]#vim /tftpboot/pxelinux.cfg/default

然后修改/tftpboot/pxelinux.cfg/default的配置文件。

文件里面需要修改两行,修改第1,后面的linux意思是寻找下面18行的label linux,然后修改下22行(即在后面添加ks=http://192.168.50.1/ks.cfg)。第22行的意思是使安装程序通过http服务器访问kickstart文件。

配置文件修改完了,要开始自动安装,安装程序必须能访问kickstart文件。有多种方法可访问kickstart文件,其中最常用的一种方法是通过网络服务器进行,例如:ftp服务器、WEB服务器或NFS服务器,这种方法非常易于部署,并且也使管理更改变得十分简单。也可以通过USB磁盘、CDROM或本地硬盘。如果USBCDROM中的kickstart文件非常便于访问,只需将kickstart文件放置在用来开始安装的引导介质中。而使用DHCP服务器和TFTPPXE配置起来更为复杂。

使安装程序指向kickstart文件的书写格式如下:

ks=ftp://server/dir/file  :ks=ftp://ftp服务器IP/ks.cfg

ks=http://server/dir/file :ks=http://http服务器IP/ks.cfg

ks=nfs:server:/dir/file   :ks=nfs:nfs服务器IP:/var/ftp/pub/ks.cfg

ks=hd:device:/dir/file   :ks=hd:sdb1:/kickstar-files/ks.cfg

ks=cdrom:/dir/file      :ks=cdrom:/kickstart-files/ks.cfg

以上有关default配置文件的修改就是通过web服务器方式来访问kickstart文件。接下来我们制作kickstart的无人值守安装文件。

接下来我们打开终端输入system-config-kickstart弹出来界面。

我们设置下默认安装的语言,时区,根口令,然后勾选下面的安装后重新引导。然后选择安装方法。

我们配置HTTP服务器的安装方法。选择执行新安装。然后点击引导装载程序选项

参考我上面的选择。接着

到这一步,选择部分参考我的。布局这里,我们自己设置下分区大小。

网络这里,默认没有,点击添加网络,设备名称为eth0,网络类型为dhcp

参考我的配置

防火墙和selinux根据自己需求选择开启或者禁用

这里由于是服务器,所以不安装图形环境

在这里勾选一些包,默认可能没有勾选桌面。根据自己需求勾选。后面剩余的两项不需要配置。

然后点击左上角的文件选择保存,选择下保存的路径,然后复制ks.cfg文件到/var/www/html目录下:

[root@test1 ~]#cp ks.cfg  /var/www/html/

注:ks.cfg就是无人值守安装时要用的Kickstart文件,该文件可以手动进行编辑,如果手动编辑Kickstart文件,则使用ksvalidator来验证该文件使用正确的关键字,但却无法验证URL路径、各个数据包或组等书写错误。Ksvalidatorsystem-config-kickstart数据包的一部分,因此必须要安装该软件包

---还记的/tftpboot/pxelinux.cfg/default文件中设置过ks=http://192.168.50.1/ks.cfg因此必须执行上面的一步

挂载Centos安装光盘到/var/www/html/data目录下,开始执行另一台机器的无人值守安装

[root@test1 ~]#umount /dev/cdrom 

[root@test1 ~]#mount /dev/cdrom /var/www/html/data

注意:

建议关闭防火墙和selinux,如果没有关闭的话,tftp服务会有问题。不信可以试试。

设置防火墙:

#iptables  -F

#service  iptables  save

关毕selinux功能:有如下两种方法可以实现

1)  永久关闭selinux功能:修改/etc/sysconfig/selinux文件,将SELINUX=enforcing改为disable,要重启系统才生效

2)  临时关闭selinux功能:#setenforce  0  不需要重启系统


接下来启动你要安装的机器了,设置为网络引导安装,这时你就可以休息下,等待它自己安装完成了。