1.客户机从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP
2.DHCP服务器返回分给客户机IP以及bootstrap文件的放置位置(该文件一般是放在一台TFTP服务器上)
3.客户机向本网络中的TFTP服务器索取bootstrap文件
4.客户机取得bootstrap文件后之执行该文件
5.根据bootstrap的执行结果,通过TFTP服务器加载内核和文件系统
6.进入安装画面, 此时可以通过选择FTP,HTTP,NFS方式之一进行安装
dhcp服务:/etc/dhco/dhcpd.conf
tftp服务:/etc/xinetd.d/tftp
tftp站点:/var/lib/tftpboot
ftp服务站点:/var/ftp/
/var/lib/tftpboot/写入一个文件
mkdir pxelinux.cfg
cd pxelinux.cfg/
vim default
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.195.100/centos7
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.195.100/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.195.100/centos7
首先开启dhcp服务,指向tftp服务器
[root@localhost ~]# yum -y install dhcp
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.195.0 netmask 255.255.255.0 {
range 192.168.195.128 192.168.195.200;
option routers 192.168.195.100;
option domain-name-servers 8.8.8.8;
next-server 192.168.195.100; ##下一个服务tftp
filename "pxelinux.0"; ##加载引导程序pxe
}
[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# systemctl enable dhcpd
安装启用tftp服务(需要四个文件:defaule,vmlinuz,initrd.img,pxelinux.0)
[root@localhost ~]# yum -y install tftp-server
[root@localhost ~]# 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 ##关闭
per_source = 11
cps = 100 2
flags = IPv4
}
[root@localhost ~]# yum -y install syslinux ## 安装引导程序
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot ---将pxe服务放到tftp站点中
安装ftpd在vsftpd软件包镜像中中找到vmlinuz,initrd.img两个文件
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# mount /dev/sr0 /var/ftp/centos7
[root@localhost ~]# cd /var/ftp/centos7/images/pxeboot/
[root@localhost ~]# cp vmlinuz initrd.img /var/lib/tftpboot/
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# cd pxelinux.cfg/
[root@localhost ~]# vim default
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.195.100/centos7
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.195.100/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.195.100/centos7
[root@localhost ~]# cd /var/lib/tftpboot/ ##查看tftp站点中的四个必要文件
[root@localhost tftpboot]# ls
initrd.img pxelinux.0 pxelinux.cfg vmlinuz
## pxelinux.0 是syslinux中的,initrd.img和vmlinuz是ftp中的, pxelinux.cfg是手动写进去的
[root@localhost ~]# iptable -F ##关闭防火墙
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl start tftp
[root@localhost ~]# systemctl enable dtftp
[root@localhost ~]# systemctl start ftpd
[root@localhost ~]# systemctl enable ftpd
装一台没有系统的虚拟机,开机测试自动安装
设置完成后root家目录会生成一个ks.cfg文件,然后将anaconda-ks.cfg文件中的package文本复制到ks.cfg文件中
然后进vim /var/lib/tftpboot/pxelinux.cfg/default添加ks=ftp://192.168.195.100/ks.cfg
将mv ks.cfg /var/ftp/
随后完成自动装机服务