PXE批量装机

350 阅读3分钟

PXE

工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统

pxe通过网卡引导启动

原理

优点

  1. 规模化:同时装配多台服务器,无需每一台单独安装操作系统;
  2. 自动化:实现服务器的自动安装及自动配置各种服务;
  3. 远程实现:不需要光盘、U盘等安装介质,方便快捷的同时又可以保障服务器安全。

搭建PXE

服务端

1.配置DHCP服务,为客户机自动分配地址、指定引导文件位置(指明TFTP服务器地址)

2.配置TFTP服务,用来提供系统内核和引导镜像文件的下载

3.配置FTP服务,提供安装源(例如镜像文件系统等)

4.安装syslinux,提供PXE引导程序

客户端

1.网卡要支持PXE协议(集成BOOTROM芯片)

2.配置DHCP和TFTP服务

3.支持网络引导,在BIOS设置中允许从 Network 或 LAN 启动即可

需要的四大文件

  • pxelinux.0:引导程序。(来自syslinux程序)
  • default:引导程序的配置文件。(需要手写,可参考光盘 isolinux 目录下的 isolinux.cfg 文件)
  • vmlinuz:内核文件。(从光盘中获取,位于 isolinux 目录下)
  • initrd.img: 系统启动镜像文件。(从光盘中获取,位于 isolinux 目录下)

实现过程

  • 客户机的网卡查找相关的dhcp服务器(获取地址和时间)。
  • DHCP服务器给客户机分配IP地址和引导程序(boot loader)的地址 ,同时通过offer报文把TFTP服务器的地址发给客户机。
  • TFTP服务器把引导文件(pxelinux.0)传给客户机。
  • 客户机将引导程序加载到内存中来。
  • 引导程序去TFTP服务器中查找配置文件,服务器将配置文件传给客户机。(配置文件中指定客户机使用ftp方式连接服务器获取系统镜像文件)
  • 服务端安装并启动vsftpd服务,客户机使用ftp服务获取系统镜像文件。

搭建PXE

安装TFTP

yum -y install tftp-server xinetd

修改配置文件

vim /etc/xinetd.d/tftp

保存退出后开启服务

systemctl start tftp

systemctl enable tftp 

systemctl start xinetd 

systemctl enable xinetd

安装DHCP

yum -y install dhcp

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf(复制配置文件文本) 

修改DHCP配置文件

vim /etc/dhcp/dhcpd.conf

保存退出后开启服务

systemctl start dhcpd

systemctl enable dhcpd

准备 Linux 内核、初始化镜像文件

先将光盘挂载到mnt下

mount /dev/sr0 /mnt

内核和镜像文件都在/mnt/images/pxeboot下

复制两个文件到TFTP根目录下

cp vmlinuz initrd.img /var/lib/tftpboot/

准备PXE引导程序

PXE引导程序由 syslinux提供

yum -y install syslinux

复制 PXE引导程序 到TFTP根目录下

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

安装FTP

yum -y install vsftpd

mkdir /var/ftp/centos7 

cp -rf /mnt/* /var/ftp/centos7/

创建空文件夹,将镜像文件复制到文件夹下

或者直接将光盘挂载到文件夹下

systemctl start vsftpd 

systemctl enable vsftpd 

开启服务

配置启动菜单文件

默认的启动菜单文件在TFTP根目录的 pxelinux.cfg子目录下,文件名为default

配置完后保存退出

关闭防火墙,测试PXE

新建虚拟机,不用设置光盘

打开,在引导过程中按下esc

选择第四个网络模式启动

直接按回车会自动选择默认入口(图形化)或者手动指定