前语

PXE( Preboot eXecution Environment,预发动履行环境 )是由Inter公司开发的网络引导技能,工作在Client/Server模式,答应客户机经过网络从长途服务器下载引导镜像,并加载装置文件或整个操作体系。PXE是经过网卡引导发动。

工作站开机后, PXE BootROM(自发动芯片) 获得操控权之前先做自我测验,然后 以播送方式发出一个请求FIND帧。 假如服务器收到工作站所送出的要求, 就会送回 DHCP 回应, 内容包含用户端的 IP 地址, 预设通讯通道, 及开机映像文件。 否则, 服务器会疏忽这个要求。 工作站收到服务器发回的呼应后则会回应一个帧,以请求传送发动所需文件。 之后,将有更多的消息在工作站与服务器之间作应对, 用以决议发动参数。 BootROM 由 TFTP 通讯协议从服务器下载开机映像档, 这个映像档就是软盘的映象文件。工作站运用TFTP 协议接收发动文件后,将操控权转交发动块,引导操作体系,完结长途发动。
PXE批量布置的优点:
规模化:一起装配多台服务器;
主动化:装置体系、装备各种服务.
长途完成:不需求光盘、U盘等装置介质 PXE(Preboot eXcution Environment)预发动履行环境,在操作体系之前运转;需求服务端运转DHCP服务,用来分配地址、定位引导程序;运转TFTP服务,供给引导程序下载。客户端网卡支撑PXE协议;主板支撑网络引导。

建立PXE网络体系的前提条件

1.客户机的网卡要支撑PXE协议(集成BOOTROM芯片),且主板支撑网络引导。一般大多数服务器主机都支撑,只需在BIOS设置中答应从 Network 或 LAN 发动即可。 2.网络中有一台 DHCP 服务器以便为客户机主动分配地址、指定引导文件方位。 3.服务器要经过 TFTP服务(简略文件传输协议)来供给引导镜像文件的下载。

PXE装备环境要求

  • 预备CentOS 7 装置源(YUM库房)
  • 装置并启用TFTP服务
  • 供给Linux内核、PXE引导程序等
  • 装置并启用DHCP服务
  • 装备发动菜单

TFTP(简略文件传输协议),是一个根据UDP协议完成的用于在客户机和服务器之间进行简略文件传输的协议,适合于小文件传输的应用场合。TFTP服务默许由xinetd服务进行办理,运用UDP端口69;xinetd是新一代的网络看护进程服务程序,又名超级服务器,常用来办理多种轻量级Internet服务。

预备四大文件

  • pxelinux.0:引导程序。(来自syslinux程序)

  • default:引导程序的装备文件。(需求手写,可参考光盘 isolinux 目录下的 isolinux.cfg 文件)

  • vmlinuz:内核文件。(从光盘中获取,坐落 isolinux 目录下)

  • initrd.img: 体系发动镜像文件。(从光盘中获取,坐落 isolinux 目录下)

initrd 的英文意义是 boot loader initialized RAM disk,即由引导程序初始化的RAM磁盘。initrd是在实践根文件体系可用之前挂载到体系中的一个初始根文件体系。initrd与内核绑定在一起, 并作为内核引导进程的一部分进行加载。内核然后会将这个initrd文件作为其阶段引导进程的一部分来加载模块,这样才能在今后的引导进程中运用真正的文 件体系,并挂载实践的根文件体系。根文件体系能够存储在包含IDE、SCSI、USB在内的多种介质上,假如将这些设备的驱动都编译进内核,能够想象内核 会多么巨大、臃肿。所以能够把initrd看做是在发动进程中衔接内核与根文件体系的一个桥梁。

进程简概

  • 装置4个软件包:dhcp、tftp-server、vsftpd、syslinux(获得prelinux.0文件)。

  • 装备DHCP服务器,分配IP地址,指明tftp服务器的地址。(虚拟机需求敞开仅主机模式,模仿内网环境)

  • 修改TFTP服务装备文件,敞开服务(默许是封闭状况)。

  • 挂载软件装置源(一般情况下都运用光盘中的装置源,即挂载光驱),并将三大文件先拷入/var/lib/tftpboot/ 目录中:pxelinux.0,vmlinuz,initrd.img。

  • 在/var/lib/tftpboot/ 目录下,创建子目录pxelinux.cfg,在子目录下编写引导程序的装备文件default。

  • 封闭防火墙和selinux。发动dhcpd、tftp、vsftpd。

  • 运用空白客户机(裸机)测验能否主动装机。

建立PXE长途装置服务器

  1. 装置启用TFTP服务 yum -y install tftp-server xinetd 修正TFTP服务的装备文件
vim /etc/xinetd.d/tftp
pprotocol          = udp       TFTP运用UDP协议	
wait               = no	       no表明客户机能够多台一起衔接,yes表明客户机只能一台一台衔接
server_args        = -s /var/lib/tftpboot	指定TFTP根目录(文件存储路径)
disable            = no        no表明敞开TFTP服务
systemctl start tftp
systemctl enable tftp
systemctl start xinetd
systemctl enable xinetd

PXE批量网络装机
PXE批量网络装机

  1. 装置并启用 DHCP 服务
yum -y install dhcp
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf                        修正DHCP服务的装备文件
 ddns-update-style none;			禁用 DNS 动态更新
 next-server 192.168.142.10; 			指定 TFTP 服务器的地址
 filename "pxelinux.0";				指定 PXE 引导程序的文件名
  subnet 192.168.142.0 netmask 255.255.255.0 {	声明要分配的网段地址
  range 192.168.142.5 192.168.142.55;		设置地址池
  option routers 192.168.142.10;			默许网关地址指向TFTP服务器的IP地址
systemctl start dhcpd
systemctl enable dhcpd

PXE批量网络装机
3. 预备 Linux 内核、初始化镜像文件

cd /mnt/images/pxeboot			已事先把光盘挂载到/mnt目录中
cp vmlinuz /var/lib/tftpboot/           仿制 Linux体系的内核文件 到TFTP根目录下
cp initrd.img /var/lib/tftpboot/     	仿制初始化镜像文件(linux引导加载模块)到TFTP根目录下

PXE批量网络装机
4. 预备 PXE 引导程序

yum -y install syslinux			PXE引导程序由软件包 syslinux 供给
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/	仿制 PXE引导程序 到TFTP根目录下

PXE批量网络装机

  1. 装置FTP服务,预备CentOS 7 装置源
yum -y install vsftpd
mkdir /var/ftp/centos7
cp -rf /mnt/* /var/ftp/centos7/
systemctl start vsftpd
systemctl enable vsftpd

PXE批量网络装机

  1. 装备发动菜单文件
    默许的发动菜单文件在TFTP根目录的 pxelinux.cfg子目录下,文件名为default
mkdir /var/lib/tftpboot/pxelinux.cfg
vim /var/lib/tftpboot/pxelinux.cfg/default	
 default auto 				指定默许进口名称
 prompt 1 				设置是否等候用户挑选,“1”表明等候用户操控
 label auto				图形装置(默许)引导进口,label 用来界说发动项
 kernel vmlinuz				kernel 和 append用来界说引导参数
 append initrd=initrd.img method=ftp://192.168.142.10/centos7
 label linux text			文本装置引导进口
 kernel vmlinuz
 append text initrd=initrd.img method=ftp://192.168.142.10/centos7
 label linux rescue			救援模式引导进口
 kernel vmlinuz
 append rescue initrd=initrd.img method=ftp://192.168.142.10/centos7

PXE批量网络装机

  1. 封闭防火墙,验证 PXE 网络装置
systemctl stop firewalld.service
setenforce 0

运用 VMware创建的虚拟机进行测验,虚拟机内存至少需求 2GB,否则在发动装置时可能会报错。 敞开虚拟机,在提示字符串“boot:”后直接按Enter键(或履行“auto”指令),将会主动经过网络下载装置文件,并进入默许的图形装置进口; 若履行“linux text”指令,则进入文本装置进口;若履行 “linux rescue”指令,则进入救援模式。

PXE批量网络装机

PXE批量网络装机

PXE批量网络装机
新建虚拟机后完成了主动化装置linux体系。下面咱们将完成静默装置批量全主动化装置。

无人值守装置

无人值守装置也称为静默装置—–在装置进程中能够静默装置好预先规划集成的一些常用软件,装置完毕今后软件就现已能够运用,许多软件都支撑静默装置,常见的Windows系列操作体系,微软的Office系列及服务器软件等,以及Linux,都支撑无人值守装置。一般见到的Windows的Ghost装置,也归于静默装置的一种。

linux无人值守装置装备

1.预备装置应对文件
装置system-config-kickstart 东西
yum install -y system-config-kickstart
翻开“Kickstart 装备程序”窗口
经过桌面菜单“应用程序”–>“体系东西”–>“Kickstart” 翻开
或履行 “system-config-kickstart” 指令翻开

PXE批量网络装机

PXE批量网络装机
装备kickstart选项 基本装备:
默许言语设为“中文(简体)”
时区设为“Asia/Shanghai”
设置root密码
高档装备中勾选“装置后重启”。

PXE批量网络装机
装置方法:选FTP
FTP服务器:ftp://192.168.142.10
FTP目录:centos7

PXE批量网络装机
引导装载程序选项:
“装置类型”:装置新引导装载程序
“装置选项”:在主引导记载(MBR)中装置引导装载程序

PXE批量网络装机
分区信息:
主引导记载:清除主引导记载
分区:删除一切现存分区
磁盘标签:初始化磁盘标签
布局:增加分区
挂载点:/boot,文件体系类型:xfs,固定巨细:500M
文件体系类型:swap,固定巨细:4096M
挂载点:/home,文件体系类型:xfs,固定巨细:4096M
挂载点:/,文件体系类型:xfs,运用磁盘上全部未运用空间

PXE批量网络装机

网络装备:
增加网络设备“ens33”
网络类型设为“DHCP”

PXE批量网络装机
防火墙装备:
禁用 SELinux、禁用防火墙

PXE批量网络装机
装置后脚本:
勾选“运用解释程序”:/bin/bash

rm -rf /etc/yum.repos.d/*
echo '[local]
name=local
baseurl=ftp://192.168.80.10/centos7
enabled=1
gpgcheck=0' > /etc/yum.repos.d/local.repo

其它选项坚持默许设置即可

PXE批量网络装机

  • 保存主动应对文件
    挑选“Kickstart 装备程序”窗口的“文件”–>“保存”指令,挑选指定保存方位,文件名为ks.cfg默许保存在/root/ks.cfg
    cp /root/ks.cfg /var/ftp/ks.cfg

  • 装备需求装置的软件包 能够根据需求将/root/anaconda-ks.cfg 的软件包装置脚本仿制到 ks.cfg文件中,只需求仿制%packages 到%end 部分即可。
    如要求最小化装置,可仿制下面内容:

vim ks.cfg
%packages
@^minimal
%end

PXE批量网络装机

  • 修改引导菜单文件 default,增加 ks 引导参数
vim /var/lib/tftpboot/pxelinux.cfg/default
 default auto 							
 prompt 0 	
 label auto								
 kernel vmlinuz	
 append initrd=initrd.img method=ftp://192.168.80.10/centos7 ks=ftp://192.168.80.10/ks.cfg

PXE批量网络装机

  • 验证无人值守装置 当客户机每次以PXE方式引导时,将主动下载ks.cfg应对装备文件,然后根据其中的设置装置CentOS 7 体系,而无须手艺干涉。 cat /etc/yum.repos.d/local.repo

PXE批量网络装机

PXE批量网络装机
PXE批量网络装机

总结:PXE与无人值守装置相配合运用完成了主动化;规模化;长途完成,极大提高了工作效率。