linux之PXE批量安装系统
- 什么是PXE
PXE(Preboot eXecute Environment,预启动执行环境)是由Intel公司开发的技术,可以让计算机通过网络来启动操作系统(计算机网卡需支持PXE技术),主要用于在无人值守安装系统中引导客户端主机安装Linux操作系统。
工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。
- 配置前所需软件及服务
yum install httpd dhcp tftp-server syslinux -y
httpd:共享安装资源
dhcp:分配ip以及让客户主机获取pxelinux.0文件
tftp-server:提供tftp协议,令客户主机可以读取到预安装环境
syslinux:提供pxelinux.0文件
pxelinux.0:预安装环境头文件,用来指定读取后续文件的程序
- PXE配置步骤
关闭防火墙开启httpd:
systemctl stop firewalld
systemctl disable firewalld
systemctl start httpd
systemctl enable httpd
getenforce ##设置selinux为disabled
启用tftp服务:
vim /etc/xinetd.d/tftp
14 disable = no
systemctl restart xinetd
chkconfig --list
启用dhcp服务:
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
编写如图
systemctl start dhcpd
systemctl enable dhcpd
配置yum源并设定共享文件:
配置yum源
mkdir /var/www/html/rhel7.0
mount /dev/sr0 /var/www/html/rhel7.0
vim /etc/rc.d/rc.local ##设定开机自动挂i载
添加如下:
mount /dev/sr0 /var/www/html/rhel7.0
chmod +x /etc/rc.d/rc.local
vim /etc/yum.repo.d/rhel7.0 ##修改yum指向为自己http共享
制作预安装环境:
cp /var/www/html/rhel7.0/isolinux/* /var/lib/tftpboot/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/
cd pxelinux.cfg
mv pxelinux.cfg default vim default ##重命名
vim default
64 append initrd=initrd.img repo=http://172.25.254.84/rhel7.0 ##安装源
systemctl restart xinetd
- PXE部署完毕测试
真机打开虚拟机管理器用PXE方式安装系统:
- PXE与Kickstart结合
Kickstart脚本安装及设定详见之前的博客
地址:Kiskstart脚本
kickstart脚本设置完毕,需要在default配置文件加入ks脚本文件地址
vim /var/lib/tftpboot/pxelinux.cfg/default
64 append initrd=initrd.img repo=http://172.25.254.84/rhel7.0 ks=http://172.25.254.84/ks.cfg ##安装源和ks
- PXE自定义配置
vim /var/lib/tftpboot/pxelinux.cfg/default
修改默认选项:
将68行的menu default设置到第一个安装选项中
修改等待时间:
默认为60s
修改标题名称:
62行内容为第一个安装选项的标题
修改背景图片:
默认为黑色,可根据自身情况更改,注意图片的格式及分辨率
END