1.适用场景
N台主机,需要安装Cnetos7设备情况下。
2.PXE简介
PXE,通俗的讲,服务器搭建好DHCP服务、网络启动项和系统安装盘,客户端主机通过网络自动获取DHCP地址并安装系统。具体PXE介绍参考百度百科PXE
3.PXE环境搭建
3.1安装软件包
yum install dhcp xinetd syslinux tftp-server httpd
说明:
dhcpd: dhcp服务,用于动态分配IP地址
xinetd: 对tftp服务访问进行控制
tftp: tftp服务,用于加载pxelinux.0、default等文件
syslinux: 用于引导加载程序
httpd: http服务,用于提供镜像和ks文件
3.2DHCP配置
编辑dhcp配置文件:
vi /etc/dhcp/dhcpd.conf
添加如下内容:
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.201 192.168.100.240;
option subnet-mask 255.255.255.0;
option routers 192.168.100.150;
# 指定引导服务器,即本机IP
next-server 192.168.100.150;
# 引导文件
filename "pxelinux.0";
}
保存后重启dhcp服务:
systemctl restart dhcpd
3.3tftp配置
编辑tftp配置文件:
vi /etc/xinetd.d/tftp
将disable参数值改为no:
disable = no
如下图所示:
保存后重启服务:
systemctl restart xinetd
systemctl restart tftp
3.4文件准备
将镜像文件和制作好的ks文件上传到home目录:
挂载centos7镜像到http访问目录:
mkdir /var/www/html/centos/7
mount -o loop /home/CentOS7.2.iso /var/www/html/centos/7/
使用浏览器访问http测试是否正常挂载镜像:
拷贝ks文件到http访问目录:
mkdir /var/www/html/centos/ks7/
vp /home/ks_mini.cfg /var/www/html/centos/ks7/
复制引导内核文件initrd.img和vmlinuz到tftp目录:
mkdir /var/lib/tftpboot/centos7
cp /var/www/html/centos/7/images/pxeboot/initrd.img /var/lib/tftpboot/centos7/
cp /var/www/html/centos/7/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7/
3.5设置syslinux加载器
复制menu.c32和pxelinux.0到tftp目录:
cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
创建pxelinux.cfg目录并创建default引导菜单文件:
mkdir /var/lib/tftpboot/pxelinux.cfg
vi /var/lib/tftpboot/pxelinux.cfg/default
在default添加如下文本:
default menu.c32
prompt 0
timeout 300
ONTIMEOUT local
menu title ########## PXE Boot Menu ##########
label 1
menu label ^1) Install CentOS 7 x64 ^Minimal
kernel centos7/vmlinuz
append initrd=centos7/initrd.img ks=http://192.168.100.150/centos/ks7/ks_mini.cfg
检查/var/lib/tftpboot/目录下文件:
至此,即可使用PXE远程自动安装CentOS7系统,文中提到ks_mini.cfg配置文件是使用kickstart程序创建的Centos7系统安装自动化配置文件,文件内容包含键盘类型、国家区域选择、root密码、网卡配置、分区大小、软件包等参数。kickstart配置方法后续有时间在写个文章说明。