PXE通过网络自动化安装系统

要实现此功能要有三个基础的服务:DHCP服务,TFTP服务,HTTP服务
HTTP:存放ks应答文件,安装源文件
DHCP:提供网络地址,提供TFTP服务器地址
TFTP: 存放启动文件,将网卡启动的内核文件,菜单文件存放于此 /var/lib/tftpboot 目录下

1 HTTP服务设置

安装HTTP,设置为开机启动,启动HTTP

yum install httpd 
systemctl enable httpd
systemctl start httpd

创建相应的目录,方便存放文件
mkdir -pv /var/www/html/centos/{6,7}/os/x86_64/
mkdir -pv /var/www/html/ksdir/
在HTTP工作目录中放入安装源文件,ks应答文件
通过挂载源文件光盘或都直接cp安装源文件到/var/www/html/centos/目录下
mount /dev/sr0 /var/www/html/centos/6/os/x86_64 挂载Centos6的安装光盘到对应目录中
mount /dev/sr1 /var/www/html/centos/7/os/x86_64 挂载Centos7的安装光盘到对应目录中
拷贝ks应答文件到/var/www/html/ksdir/目录下
通过浏览器测试HTTP服务能否正常访问

2 TFTP服务设置

安装tftp,设置为开机启动,启动tftp

yum install tftp-server  
systemctl enable tftp  
systemctl start tftp

3 DHCP服务设置

安装dhcp包,设置dhcp服务,设置为开机启动,启动服务

yum install dhcp
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.examle /etc/dhcp/dhcpd.conf   拷贝DHCP配置模板文件到DHCP配置目录中,对DHCP服务进行设置  
vim /etc/dhcp/dhcpd.conf  
subnet 192.168.37.0 netmask 255.255.255.0 {
  range 192.168.37.10 192.168.37.20;
  option routers 192.168.37.254;
  next-server 192.168.37.7;      添加的行,设置tftp服务器地址  
  filename "pxelinux.0";         添加的行,设置启动文件  
}
systemctl enable dhcpd  
systemctl restart dhcpd  

4 准备启动文件

拷贝启动文件到tftp工作目录中:/var/lib/tftpboot 启动文件通过启动光盘拷贝
拷贝vmlinuz和initrd.img文件到/var/lib/tftpboot目录下
拷贝pxelinux.0文件到/var/lib/tftpboot目录,此文件通过安装syslinux包可以获取,在/usr/share/syslinux/pxelinux.0
拷贝 /usr/share/syslinux/menu.c32到/var/lib/tftpboot目录下 简化版的菜单风格文件
mkdir /var/lib/tftpboot/pxelinux.cfg/ 启动菜单目录
拷贝启动光盘中的启动菜单到/var/lib/tftpboot/pxelinux.cfg/目录下,并修改文件名为default

5 修改启动菜单

vim /var/lib/tftpboot/pxelinux.cfg/default
只保留第一、第二行、菜单标题和要安装的菜单选项
PXE通过网络自动化安装系统_第1张图片

检查一下几个服务的端口是否开启(http:80,tftp:69,dhcp:67),设置完成后可以通过网络安装系统
ss -ntlu
安装界面如下图
PXE通过网络自动化安装系统_第2张图片