目录
1.pxe网络批量装机的相关知识
1.1pxe的定义
PXE(预启动执行环境)是由Intel公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。
1.2实现的硬件条件
bios支持
网卡支持(现在基本都已支持)
bios哄开启开关
dhcp服务器
服务器通过 tftp服务(简单文件传输协议)来提供系统内核和引导镜像的下载 udp
1.3实现过程
1、网卡需要查找相关的dhcp服务器(获取地址时间)
2、找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
3、网卡使用tftp客户端吧引导程序加载到内存中来
4、bios执行引导程序
5、引导程序会去TFTP去查找配置文件
6、根据配置文件去引导安装系统
7、系统安装过程
2.pxe配置
2.1pxe所需的四大文件
vmlinuz:内核文件(从光盘中获取,位于isolinux目录下)
initrd.img:系统启动镜像文件(从光盘中获取,位于isolinux目录下)
isolinux.cfg:手写grep引导
syslinux软件:提供引导等工具
2.2搭建pxe过程中的服务介绍
2.2.1tftp服务
tftp(简单文件传输协议):内核和引导文件
2.2.2vsftp
安装系统镜像文件获取方式
2.2.3syslinux
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时
间,并建立修护或其他特殊用途的启动盘
2.24dhcp
动态获取ip地址
3.pxe批量安装的具体操作过程
yum install tftp-server.x86_64 dhcp syslinux vsftpd -y
//安装软件
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
//生成dhcp配置文件
vim /etc/dhcp/dhcpd.conf
//修改配置文件
subnet 192.168.58.0 netmask 255.255.255.0 { //同一网段dhcp设置
range 192.168.58.20 192.168.58.50; //ip地址池
option routers 192.168.58.10; //默认网关
next-server 192.168.58.10; //指定tftp的服务器地址
filename "pxelinux.0"; //指定启动文件
}
systemctl start dhcpd
vim /etc/xinetd.d/tftp //修改tftp配置文件:将yes改为no
disable = no
//准备四大文件
pxelinu.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
//准备内核 驱动文件
mount /dev/sr0 /mnt //挂载
cd /mnt/isolinux/
cp vmlinuz initrd.img /var/lib/tftpboot/
//准备手写配置文件
cd /var/lib/tftpboot/
mkdir pxelinux.cfg
vim pxelinux.cfg/default
default linux
timeout 600
label linux
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.58.10/centos7
label linux text
kernel vmlinuz
append text initrd =initrd.img method=ftp://192.168.58.10/centos7
//准备yum仓库
mkdir /var/ftp/centos7
mount /dev/sr0 /var/ftp/centos7/
systemctl start dhcpd
systemctl start tftp
systemctl start vsftpd
新建虚拟机,开启,如果无误说明前面配置无问题,方便排错
//准备应答文件 自动安装操作系统
yum install system-config-kickstart -y // 安装图形化界面 制作应答文件的工具
systemctl start system-config-kickstart
手动去添加应答文件过程
cd /var/lib/tftpboot/
vim pxelinux.cfg/default
default linux
timeout 600
label linux
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.58.10/centos7 ks=ftp://192.168.58.10/ks.cfg
label linux text
kernel vmlinuz
append text initrd =initrd.img method=ftp://192.168.58.10/centos7