通过PXE的方式安装CentOS 7

为了不必要的麻烦,可以暂时禁用selinux

setenforce 0

为了简单,直接禁用firewalld:

systemctl disable firewalld

systemctl stop firewalld

确认防火墙放行相应的数据包,或直接暂时删除或防火墙的规则

iptables -F

整个过程需要三种协议的支持:dhcp、tftp、http(或ftp)。

dhcp用来使得机器获取ip地址、next server等信息。next server告诉机器下一步去哪台机器拉取与安装相关的文件。

tftp协议负责传输启动安装界面所需要的文件。

真正安装的时候,所需要的文件,由http(或者ftp)传输。

配置httpd的细节不再详述。

配置dhcp服务器,主要设置好 next-server 和 filename 两项。

关于tftp server的配置,大部分介绍都是错误的。大都采用xinet的方式启动tftp server,其实不必要。很多英文网站的介绍也是错的,这是我发现的为数不多的、英文网站大部分介绍都是错误的情况。这篇文章的观点和我相同,这里是这篇文章的备用地址。已经在机器上测试过,删除xinetd之后,并不影响tftp,下面是例子。

[root@localhost ~]# netstat -anpu

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address          Foreign Address        State      PID/Program name   

udp        0      0 0.0.0.0:3809            0.0.0.0:*                          665/dhclient       

udp        0      0 0.0.0.0:68              0.0.0.0:*                          665/dhclient       

udp        0      0 127.0.0.1:323          0.0.0.0:*                          618/chronyd       

udp6      0      0 :::16079                :::*                                665/dhclient       

udp6      0      0 ::1:323                :::*                                618/chronyd       

[root@localhost ~]#

[root@localhost ~]# rpm -ql xinetd

package xinetd is not installed

[root@localhost ~]#

[root@localhost ~]# systemctl start tftp

[root@localhost ~]#

[root@localhost ~]# netstat -anpu

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address          Foreign Address        State      PID/Program name   

udp        0      0 0.0.0.0:3809            0.0.0.0:*                          665/dhclient       

udp        0      0 0.0.0.0:68              0.0.0.0:*                          665/dhclient       

udp        0      0 127.0.0.1:323          0.0.0.0:*                          618/chronyd       

udp6      0      0 :::16079                :::*                                665/dhclient       

udp6      0      0 :::69                  :::*                                1/systemd         

udp6      0      0 ::1:323                :::*                                618/chronyd       

[root@localhost ~]#

[root@localhost ~]# echo 123412341234123 > /var/lib/tftpboot/t

[root@localhost ~]#

[root@localhost ~]# tftp 127.0.0.1

tftp> get t

tftp> [root@localhost ~]#

[root@localhost ~]#

[root@localhost ~]# cat t

123412341234123

[root@localhost ~]#

弄明白每步的作用之后,配置并不困难。

通过wireshark抓包之后,可以观察到dhcp和用tftp传输pxelinux.0(这个文件名是配置在dhcp中的)的过程,截图如下。

这篇文章靠谱,作者采用了xinetd的方式启动tftp server。备份地址

你可能感兴趣的:(通过PXE的方式安装CentOS 7)