前言:
一般系统安装方式基本上都是做一个安装盘,然后每个机器都是插上U盘花上20分钟左右时间操作,包括选择引导方式,语言,键盘布局,设定初始root密码等一系列操作。较为繁琐,但是辛苦不是最大的问题,效率才是。
这次我们机房迁移一共有三十台机器,每台不算初始化时间,只是安装系统就得很长时间,所以我们选择用PXE网络引导的方式,告别U盘。
PXE技术分析:
工作过程
其实就是DHCP+TFTP+FTP三个服务配合操作(FTP也可以用HTTP服务代替 因为我们本次操作的机器HTTP端口被占用所以直接选择FTP)
原理:
客户端PXE网卡启动
从DHCP服务器获得IP
从TFTP服务器上下载pxelinux.0、default
根据配置文件default指定的vmlinuz、initrd.img启动系统内核,并下载指定的ks.cfg文件
跟据ks.cfg去(HTTP/FTP/NFS)服务器下载RPM包并安装系统
完成安装
操作步骤:
DHCP服务器安装配置
首先 确认DHCP服务没有安装,
1 | rpm -qa | grep dhcp |
没有安装过就直接yum安装(也要注意同一内网之中有没有别的DHCP服务在运行,避免冲突)
1 | yum install dhcp* |
然后配置一下
1 | vim /etc/dhcp/dhcpd.conf |

配置完直接重启 dhcp服务。
service dhcp restart
但是我们会看到
这个时候直接运行
/usr/sbin/dhcpd
就OK了(ps -ef 确认下进程是否在)
TFTP服务安装
首先确定机器有没有安装TFTP服务
rpm -qa | grep tftp
如果没有直接yum安装
yum install tftp*
然后稍微修改些配置
disable 由yes改为no
server_args = 加上-u nobody (用户可以是所有人)
/usr/lib/tftpboot 即为文件目录
服务启动
systemctl start tftp
FTP服务安装
确定ftp服务之前没有安装
yum -y install vsftpd
修改一些配置
vim /etc/vsftpd/vsftpd.conf
更改
anonymous_enable=YES
这里需要保证anonymous_enable=YES (匿名用户登录开启)
然后测试ftp服务正常与否 可以找一台内网机器或者本机实验
如果能用anonymous 免密码登录到ftp 证明服务正常
文件拷贝
现在基本服务已经搭建完成了 我们需要准备一下镜像文件等挂载到TFTP 和 FTP服务器上供网络引导的机器读取下载。因为我们上边dhcp.conf中已经写到了 pxe client 要向 TFTP服务器请求的filename pxelinux.0
所以我们需要把这个文件拷贝到TFTP文件目录下。
PXE启动映像文件由syslinux提供,我们只要安装syslinux,就会生成一个pxelinux.0文件,
只需要将 pxelinux.0 这个文件复制到TFTP根目录即可。
yum install -y syslinux cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
把我们之前下载好的镜像ISO文件挂载一下,目标路径为ftp服务器文件目录位置
mount -o loop /soft/CentOS-7-x86_64-Everything-1511.iso /var/ftp/pub/
复制iso 镜像中的/image/pxeboot/initrd.img 和vmlinux 至/var/lib/tftpboot/ 文件夹中
cp /var/ftp/pub/image/pxeboot/initrd.img /var/lib/tftpboot/ cp /var/ftp/pub/image/pxeboot/vmlinux /var/lib/tftpboot/
复制iso 镜像中的/isolinux/*.msg 至/var/lib/tftpboot/ 文件夹中
cp /var/ftp/pub/isolinux/*.msg /var/lib/tftpboot/
在/var/lib/tftpboot/ 中新建一个pxelinux.cfg目录
mkdir /var/lib/tftpboot/pxelinux.cfg
将iso 镜像中的/isolinux 目录中的isolinux.cfg复制到pxelinux.cfg目录中,同时更改文件名称为default
cp /var/ftp/pub/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
修改default文件
vim /var/lib/tftpboot/pxelinux.cfg/default
服务启动
systemctl start vsftpd
(如果有kickstart脚本也要在这里说明路径 例如: ks=ftp://10.215.33.12/pub/ks.cfg)
至此文件拷贝完成(别忘了重启三个服务DHCP,TFTP,FTP)
网络引导已经配置OK 重启客户端服务器的时候只需要进到boot manager中选择pxe网络引导即可。
kickstart脚本测试完成后会附上