PXE批量装机解放你的双手!

Posted 龙少。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PXE批量装机解放你的双手!相关的知识,希望对你有一定的参考价值。

一.PXE的概念

pxe(Preboote Xecute Environment,预启动执行环境)是由Intel公司开发的技术,也被称为预执行环境,提供了一种使用网络接口启动计算机的机制。

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

二.PXE的优点

1.规模化

同时装配多台服务器

2.自动化

安装系统、配置各种服务

3.远程实现

不需要光盘、U盘等安装介质

三.PXE包含的服务

1.DHCP服务器

用于为需要PXE服务的主机提供IP、定位引导程序

2.TFTP服务器(简单文件传输协议)

系统引导文件pxelinux.0文件,用于引导程序下载;使用udp69端口,是一个小而易于实现的文件传送协议

容易实现、速度快、不验证身份权限等,客户端请求文件就给他
一般用作于小文件的传输
包含内核文件和驱动文件,通过复制centos7的光盘里的内核和驱动文件
pxelinux.0文件通过yum下载某一个软件获得

3.FTP服务器

存储软件包;通过挂载centos7的光盘ftp获得软件包

四.PXE工作原理简述

  1. Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否
    合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地
    址,同时将启动文件pxelinux.0的位置信息一并传送给Client。

  2. Client向PXE Server上的TFTP发送获取pxelinux.0请求消息,TFTP接收到
    消息之后再向Client发送pxelinux.0大小信息,试探Client是否满意,当
    TFTP收到Client发回的同意大小信息之后,正式向Client发送pxelinux.0。

  3. Client执行接收到的pxelinux.0文件。

  4. Client向TFTP发送针对本机的配置信息(记录在TFTP的pxelinux.cfg目录
    下),TFTP将配置文件发回Client,继而Client根据配置文件执行后续操
    作。

  5. Client向TFTP发送Linux内核请求信息,TFTP接收到消息之后将内核文件发
    送给Client。

  6. Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件
    系统。

  7. Client启动Linux内核(启动参数已经在4中的配置文件中设置好了)。

  8. Client通过NFS下载镜像文件,读取autoyast自动化安装脚本。
    至此,Client正式进入自动化安装模式开始安装系统直到完成。

五.具体步骤

1.安装服务dhcp

yum -y install dhcp                                 #安装dhcp软件包
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
                                                    #将dhcp配置模板复制到dhcp配置文件中
vim /etc/dhcp/dhcpd.conf    						#修改DHCP服务的配置文件
ddns-update-style none;					         	#禁用 DNS 动态更新
next-server 192.168.184.10; 					    #指定 TFTP 服务器的地址
filename "pxelinux.0";						        #指定要下载的 PXE 引导程序的文件
 
subnet 192.168.184.0 netmask 255.255.255.0 {	    #声明要分配的网段地址
range 192.168.184.100 192.168.184.200;				#设置地址池
option routers 192.168.184.10;						#默认网关地址指向TFTP服务器的IP地址
}
 
systemctl start dhcpd                               #开启dhcp服务 
systemctl enable dhcpd                              #开启dhcp服务开机自启

2.安装服务tftp


yum -y install tftp-server xinetd            #安装并启用 TFTP 服务
vim /etc/xinetd.d/tftp                       #修改TFTP服务的配置文件
protocol            = udp		             #TFTP默认使用UDP协议	
wait                = no		             #no表示客户机可以多台一起连接,yes表示客户机只能一台一台连接
server_args         = -s /var/lib/tftpboot	 #指定TFTP根目录(引导文件的存储路径)
disable             = no		             #no表示开启TFTP服务
 
systemctl start tftp                         #开启ftp服务
systemctl enable tftp                        #开启ftp服务开机自启
systemctl start xinetd                       #开启xinetd服务
systemctl enable xinetd                      #开启xinetd服务开机自启

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

mount /dev/sr0 /mnt
cd /mnt/images/pxeboot						
cp vmlinuz /var/lib/tftpboot/				#复制 Linux系统的内核文件 到TFTP根目录下
cp initrd.img /var/lib/tftpboot/     		#复制 初始化镜像文件(linux引导加载模块)到TFTP根目录下

4.准备PXE引导程序

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

5.安装FTP,准备centos7安装源

yum -y install vsftpd               #安装vsftpd服务
mkdir /var/ftp/centos7              #在ftp根目录下创建目录centos7
cp -rf /mnt/ *  /var/ftp/centos7/   #将镜像文件强制复制到centos7目录中,可加&让它自己后台运行
systemctl start vsftpd              #开启vsftpd服务
systemctl enable vsftpd             #开启vsftpd服务开机自启

6.配置启动菜单文件

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.184.10/centos7
 
label linux text						#文本安装引导入口
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.184.10/centos7
 
label linux rescue						#救援模式引导入口
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.184.10/centos7
 
systemctl stop firewalld.service        #关闭系统防火墙
setenforce 0                            #关闭系统安全机制

7.关闭防火墙 重新装机验证

六.Kickstart无人值守安装

1.准备应答文件

yum install -y system-config-kickstart #安装system-config-kickstart 工具

2.打开应答程序

通过桌面菜单“应用程序”–>“系统工具”–>“Kickstart” 打开

执行 “system-config-kickstart” 命令打开

3.选择你要的选项

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[root@localhost ~]# vi /etc/yum.repos.d/CentOS-Base.repo //软件包无法选择,此时修改yum配置文件

[development] //将base改为development即可
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
保存在root目录下

在这里插入图片描述

4.配置需要安装的软件包

可以根据需要将/root/anaconda-ks.cfg 的软件包安装脚本复制到 ks.cfg文件中,只需要复制%packages 到%end 部分即可。

如要求最小化安装,可复制下面内容:
vim ks.cfg

// An highlighted block
var foo = 'bar';

%packages
@^minimal
%end

cp /root/ks.cfg /var/ftp/ks.cfg
注意先后顺序,开机引导读取的是/var/ftp内的内容,不是/root,/root仅仅是暂时保存的对方,所以,修改完再复制过去,或者直接复制过去再修改

5.编辑引导菜单文件 default,添加 ks 引导参数

vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0 #设置是否等待用户选择,“0”表示不等待用户控制

label auto
kernel vmlinuz #kernel 和 append用来定义引导参数
append initrd=initrd.img method=ftp://192.168.80.10/centos7 ks=ftp://192.168.80.10/ks.cfg #添加 ks 引导参数以指定 ks.cfg 应答文件的 URL 路径

6.创建新的虚拟机 验证无人值守安装

以上是关于PXE批量装机解放你的双手!的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本之一键部署PXE远程安装服务,将解放双手进行到底!

效率太高! 批量装机用哪个? PXE高效批量网络装机

PXE 网络装机——实现无人值守批量装机

PXE高效批量网络装机实现Kickstart无人值守安装

PXE一键批量装机

CentOS7中PXE网络装机并且实现无人值守批量装机(装机过程全程无需动手)