一、简介
PXE(Pre-boot Environment)是由inter设计的协议,他可以是计算机通过网络启动。PXE协议分为client和server端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存中执行并显示命令菜单,经用户选择后,PXE client将放置在远程的操作系统通过网络下载到本地运行。PXE在其启动过程中,客户端请求服务器分配IP地址,之后PXE client使用TFTP client通过TFTP(Trivial File Transfer Protocol)协议下载启动安装程序所需的文件。
PXE网络安装:客户机通过之chiPXE的网卡向网络中发送请求DHCP信息的广播请求IP地址等信息,DHCP服务器给客户端提供IP地址和其他信息(TFTP服务器、启动文件等),之后请求并下载安装需要的文件。
Kickstart是一种无人值守的安装方式。他的工作原理是在安装过程中记录需要人工干预填写的各种参数,并记录生成一个名为anaconda-ks.cfg的文件。
PXE工作流程:
1、PXE client从自己的PXE网卡启动,向本网络中的DHCP服务其索取IP和安装的相关文件
2、DHCP服务器返回分配给客户机的IP地址,以及PXE文件存放的位置(文件一般是放在一台TFTP服务器上)
3、PXE client向本网络中的TFTP服务器索取pxelinux.0文件
4、PXE client取得pxelinux.0文件后执行该文件
5、根据pxelinux.0的执行过程,通过TFTP服务器加载内核和文件系统
6、进入安装画面,此时可以通过HTTP、FTP、NFS方式之一进行安装相关软件包
二、环境准备
1、环境组成
操作系统:CentOS Linux release 7.6.1810
软件工具:kickstart、dhcp、tftp-server、httpd
2、防护关闭
关闭SELinux和防火墙
SELinux:
<span style="background-color:#f8f8f8"><span style="color:#333333"> [<span style="color:#000000">root</span><span style="color:#0055aa">@localhost</span> <span style="color:#981a1a">~</span>]<span style="color:#aa5500"># sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config</span></span></span>
Firewalld:
<span style="background-color:#f8f8f8"><span style="color:#333333"> [<span style="color:#000000">root</span><span style="color:#0055aa">@localhost</span> <span style="color:#981a1a">~</span>]<span style="color:#aa5500"># systemctl stop firewalld.service</span>
[<span style="color:#000000">root</span><span style="color:#0055aa">@localhost</span> <span style="color:#981a1a">~</span>]<span style="color:#aa5500"># systemctl disable firewalld.service</span></span></span>
3、软件安装
安装软件:httpd、dhcp、tftp-server、syslinux
<span style="background-color:#f8f8f8"><span style="color:#333333"> [<span style="color:#000000">root</span><span style="color:#0055aa">@localhost</span> <span style="color:#981a1a">~</span>]<span style="color:#aa5500"># yum -y install httpd dhcp tftp-server syslinux</span></span></span>
注意:如果CentOS 7有图形界面可以安装system-config-kickstart软件,实现手动新建*.ks.cfg文件。
三、各软件相关配置
1、DHCP服务配置
1.1、修改dhcpd服务配置文件
<span style="background-color:#f8f8f8"><span style="color:#333333"> [<span style="color:#000000">root</span><span style="color:#0055aa">@localhost</span> <span style="color:#981a1a">~</span>]<span style="color:#aa5500"># cp -a /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf</span>
[<span style="color:#000000">root</span><span style="color:#0055aa">@localhost</span> <span style="color:#981a1a">~</span>]<span style="color:#aa5500"># egrep -v "^#|^$" /etc/dhcp/dhcpd.conf</span>
<span style="color:#000000">option</span> <span style="color:#000000">domain</span><span style="color:#981a1a">-</span><span style="color:#000000">name</span><span style="color:#981a1a">-</span><span style="color:#000000">servers</span> <span style="color:#116644">114.114</span><span style="color:#981a1a">.</span><span style="color:#116644">114.114</span>,<span style="color:#116644">8.8</span><span style="color:#981a1a">.</span><span style="color:#116644">8.8</span>;
<span style="color:#000000">default</span><span style="color:#981a1a">-</span><span style="color:#000000">lease</span><span style="color:#981a1a">-</span><span style="color:#000000">time</span> <span style="color:#116644">600</span>;
<span style="color:#000000">max</span><span style="color:#981a1a">-</span><span style="color:#000000">lease</span><span style="color:#981a1a">-</span><span style="color:#000000">time</span> <span style="color:#116644">7200</span>;
<span style="color:#000000">log</span><span style="color:#981a1a">-</span><span style="color:#000000">facility</span> <span style="color:#000000">local7</span>;
<span style="color:#000000">subnet</span> <span style&#