由于我们要获取安装系统服务的yum源以及内核文件,虚拟根文件,这些文件都是大文件,在传输时我们必须保证其能够安全传输,所以我们选择了HTTP服务,当然了,选择FTP服务也是可以的。
HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。是互联网上广泛试用的协议。是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分等。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。
4.3 TFTP服务
TFTP是一种文件传输服务,用于服务器与客户端进行文件的传输,不过他只能进行简单的文件传输,这个服务开销不大,所以并不能进行大文件的传输,多用于小文件的传输。他没有FTP那么强大,但是TFTP使用UDP协议传输数据,有些时候比FTP更加方便,它所监听的端口为69。由于我们是在局域网中,系统相对安全,而提供的数据也不是很大,所以TFTP是实现PXE的不二选择。
5 功能实现
5.1安装前准备
由于涉及到主机间不同基于不同协议的通信,所以为了避免不必要的麻烦,我们选择关闭防火墙以及selinux。生产场景中不建议这样做。
[ root@vinsent ~ ]#iptables -F # 关闭防火墙
[ root@vinsent ~ ]#setenforce 0 # 临时关闭selinux
[ root@vinsent ~ ]#vim /etc/selinux/config # 修改文件永久关闭selinux
...前面省略
SELINUX=disabled # 设置SELINUX的值为disabled
...后面省略
5.2配置静态IP地址
由于我们在前面方案分析中选择了方案1,即将所有服务搭建在同一台服务器上。由于做DHCP服务的主机的IP地址必须固定,所以我们要先配置服务器的IP地址。由于我是在CentOS7系统上搭建的服务器,所以有许多命令只有CentOS7才能使用。CentOS6及之前的版本请自行查阅相关文档。
[ root@vinsent ~ ]#vim /etc/sysconfig/network-scripts/ifcfg-ens33 # 设置静态IP
DEVICE=ens33
BOOTPROTO=static
IPADDR=192.168.14.201
PREFIX=24
ONBOOT=yes
[ root@vinsent ~ ]#systemctl restart network.service #重启网络服务
[ root@vinsent ~ ]#ip a # 查看自己的IP是否设置成功
5.3安装服务
由于我们需要HTTP、TFTP、DHCP服务来提供相应的服务,所以我们必须要在系统中安装,相应的服务。这里需要注意,如果你的系统时最小化安装,那么建议你先安装一些包组,GCC等。如果安装过程中出现包依赖问题,依次安装相应的包即可。
[ root@vinsent ~ ]#yum -y install dhcp tftp-server httpd syslimux #安装相应的服务包
[ root@vinsent ~ ]#yum -y install xinetd # 安装超级守护进程xinetd
[ root@vinsent ~ ]#systemctl enable dhcp # 设置dhcp开机启动
[ root@vinsent ~ ]#systemctl enable tftp # 设置tftp开机启动
[ root@vinsent ~ ]#systemctl start tftp # 启动tftp服务
[ root@vinsent ~ ]#systemctl enable httpd
[ root@vinsent ~ ]#systemctl start httpd # 启动http服务
[ root@vinsent ~ ]#chkconfig tftp on # 如果这天命令不能使用,请修改配置文件
[ root@vinsent ~ ]#vim /etc/xinetd.d/tftp
service tftp
{
...
disable =yes # 修改这一项为"disable =no"
...
}
[ root@vinsent ~ ]#systemctl restart xinetd # 修改之后,一定要重启xinetd服务
5.4配置DHCP服务