一、PXE工作流程
1.网卡上的PXE芯片有512字节,存放了DHCP和TFTP的客户端
2.启动计算机并选择网卡启动
3.PXE上的DHCP客户端会向DHCP服务器,申请IP地址
4.DHCP服务器分配一个IP址地给它,同时DHCP配置文件还告诉PXE
TFTP服务器的地址,并去下载一个pxelinux.0的文件
(1)next-server 192.168.193.140;
(2)filename "pxelinux.0";
5.pxelinux.0告诉PXE要址载的配置文件是pxelinux.cfg目录下面的default
6.PXE下载并依据配置文件的内容下载启动必须的文件,并通过kickstart.cfg配置文件开始安装系统
二、关闭防火墙、selinux
(1)由于涉及到主机间不同基于不同协议的通信,所以为了避免不必要的麻烦,我们选择关闭防火墙以及selinux。
#systemctl disable firewalld # 关闭防火墙
#vim /etc/selinux/config # 修改文件永久关闭selinux
SELINUX=disabled # 设置SELINUX的值为disabled
(2)查看一下生效情况
# firewall-cmd --state
not running
# getenforce
Disabled
三、安装并配置DHCP服务
# yum install dhcp -y
#rpm -ql dhcp # 查询dhcp相关的配置文件
/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
/usr/share/doc/dhcp-4.2.5/dhcpd6.conf.example
#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf # 复制模板配置文件
# vim /etc/dhcp/dhcpd.conf
#---------可用最简配置-------------------
subnet 192.168.128.0 netmask 255.255.255.0 {
range 192.168.193.20 192.168.193.100; //地址范围
option routers 192.168.193.140; //默认网关指向客户端
option domain-name-servers 114.114.114.114; //地址解析南京的服务器解析
next-server 192.168.193.140; //指向TFTP服务器是自己的地址
filename "pxelinux.0"; //ftp站点底下的引导程序文件位置
}
** 多网卡默认监听eth0,指定DHCP监听eth1网卡**
# vim /etc/sysconfig/dhcpd 在这个文件中,不是/etc/dhcp/dhcpd.conf
# Command line options here
DHCPDARGS=eth1 # 指定监听网卡
四、安装配置TFTP、安装VSftpd文件传输协议、挂载操作系统安装镜像文件
(1)安装xinetd、tftp-server和syslinux(或syslinux-tftpboot 使用这个包就不必手工将启动内核文件vmlinuz, initrd.img pxelinux.0复制到tftp server的根目录下,这个包自动搞好。)
# yum install -y xinetd
# yum install -y tftp-server syslinux #syslinux 会在 /usr/share/syslinux/pxelinux.0 生成pxelinux.0文件 ,需要手动复制到/var/lib/tftpboot/ 目录中。
(2)配置xinetd,由xinetd管理tftp
# vim /etc/xinetd.d/tftp
#---------可用最简配置-------------------
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no #默认disable是yes的,把它改为no即可
per_source = 11
cps = 100 2
flags = IPv4
}
systemctl enable tftp
systemctl enable xinetd
systemctl start tftp
systemctl start xinetd
(3)安装VSftpd文件传输协议、挂载操作系统安装镜像文件
# yum install vsftpd -y
# cd /var/ftp
# mkdir centos7
# mount /dev/sr0 /var/ftp/centos7
# df -hT
# systemctl start vsftpd
# systemctl enable vsftpd
五、复制内核文件、初始化文件到TFTP服务目录中
TFTP服务根目录下要放4个文件
(1)vmlinuz #vmlinuz在镜像文件中,是可引导的、压缩的内核文件,vmlinuz是vmlinux的压缩文件。是可执行的Linux内核
(2)initrd.img #initrd.img在镜像文件中,是“initial ram disk”的简写。initrd用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态
(3)pxelinux.cfg/default #安装菜单
(4)pxelinux.0 #由syslinux生成
# cd /var/ftp/centos7/images/pxeboot
# yum -y install syslinux
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
六、配置客户端启动配置文件
# mkdir /var/lib/tftpboot/pxelinux.cfg
# cd /var/lib/tftpboot/pxelinux.cfg
# vim default
default auto
prompt 0 //0自动 1手动
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.128.140/centos7
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.128.140/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.128.140/centos7
如果要实现自动化安装,需要修改default文件
在 append initrd 后面添加 ks=ftp://192.168.193.128/ks.cfg (指定自动化脚本ks.cfg路径)