PXE无人值守批量装机操作步骤

2024-06-20 01:52

本文主要是介绍PXE无人值守批量装机操作步骤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

PXE

PXE所需环境

开机过程

部署PXE有人值守操作步骤

一. 配置环境

FTP

DHCP和TFTP

二. 测试

部署无人值守操作步骤

一. 环境配置

二. 测试

总结

1. 实现PXE远程装机所需要的组件

2. PXE网络引导安装过程


PXE

PXE:Preboot eXecution Environment(预启动执行环境)

PXE是一个规范或标准,通过网络进行计算机引导的机制。PXE利用了现有的网络协议(例如 DHCP 和 TFTP)来实现其功能

PXE所需环境

  1. 一个PXE的客户端需要网卡具备引导(pxe)功能
  2. iso系统镜像文件(存放到FTP相应目录下)
  3. FTP(文件传输协议)
    1. 用于存放iso镜像文件
  1. DHCP(动态主机配置协议)
    1. 即使一个主机没有操作系统,也要分配一个IP地址,让该主机能够连接到FTP
    2. 一个主机的网卡把MAC地址广播发给dhcp,dhcp通过已知MAC地址,再通过 RARP 反向地址转换协议,分配IP地址
  1. TFTP(简单文件传输协议;Trivial File Transfer Protocol)
    1. 工作机制比FTP更精简,适合传输体量小的文件
    2. 在PXE过程中主要存放内核文件、初始化镜像文件、引导程序、引导配置文件(由安装介质在装机时存储到内存中)

开机过程

  1. 按下电源
  2. 开机自检(post)
  3. 按照bios预设(光驱、硬盘、优盘、网卡)进行引导
  4. 加载引导程序
  5. 加载初始化镜像文件
  6. 加载内核
  7. 加载系统文件
  8. 加载systemd(init)进程(守护进程)
  9. 生成进程树

部署PXE有人值守操作步骤

系统环境:装有桌面的CentOS 7系统

有人值守:开启需要批量装机的主机,手动配置系统参数

一. 配置环境

FTP

先使用Xshell连接操作

修改仓库配置文件

yum仓库的唯一标识必须使用 development,保存并退出

为了方便实验关闭防火墙、内核安全机制,并且安装 FTP 的服务端软件包;yum -y install ftp 是安装FTP服务的客户端软件包

进入 ftp 服务的目录,创建一个存放镜像文件的目录,拷贝光盘目录下所有文件到 /var/ftp/centos7 目录下,因为拷贝内容有目录所以加-r,f:强制覆盖

开启FTP服务并设为开机自启

DHCP和TFTP

安装dhcp服务软件包

因为在配置DHCP时需要指定TFTP相关数据所以也把TFTP安装出来

编辑TFTP配置文件

不禁用TFTP服务,修改disable为no,保存并退出

因为TFTP受xinetd(超级服务守护进程)监听管理。如果没有访问,xinetd就让TFTP就休眠,如果有访问,xinetd就把TFTP唤醒

启动TFTP服务,顺便也可以设置开机自启

cd到pxeboot目录下,可以看到放置到TFTP的PXE远程装机的文件(初始化镜像文件、内核文件)

  • initrd.img:初始化镜像文件,帮系统找到硬盘
  • vmlinuz:内核文件,启动各种进程
  • TRANS.TBL:当前目录下有什么文件,记录在本文件中,光盘目录下的每个目录都有一个该文件

拷贝所需的两个文件到TFTP服务的根目录下

有了初始化镜像文件和内核文件还需要引导程序,所以安装所需软件包

cd到引导程序的安装目录

拷贝引导程序到TFTP的目录下

为了指导该引导程序工作,需要指定客户端的引导选项;创建一个目录,在该目录下创建一个配置文件

将下方代码添加到该文件中

default auto # 默认调用auto
# prompt:是否等待用户录入命令并回车
# 如果为1:用户可以手动选择不同的引导选项。
# 如果为0:用户无法手动输入选项或修改引导参数。
prompt 1
label autokernel vmlinuz # 指定要加载的内核文件# 指定安装源为FTP上的centos7目录,适合无人值守的安装场景append initrd=initrd.img method=ftp://192.168.10.201/centos7label linux textkernel vmlinuz# 安装时使用文本模式,适合手动操作安装append text initrd=initrd.img method=ftp://192.168.10.201/centos7label linux rescuekernel vmlinuz# 使用 rescue 参数启动救援模式append rescue initrd=initrd.img method=ftp://192.168.10.201/centos7

编辑dhcp配置文件

添加下方代码到该文件

启动dhcp服务

二. 测试

新建虚拟机

随便找一个目录存放该虚拟机

由于该主机还没有安装系统,也就说明硬盘没有分区,所以在安装时所有文件都放置到内存中,所以这里要把内存设置为2GB以上

完成,启动该虚拟机

提示无法连接虚拟设备,选择是

启动后的界面显示了很多信息

直接回车,系统会从配置的TFTP下载初始化镜像文件和内核文件

下载完所需文件后,会自动引导系统安装。

进入系统安装界面

值得一提的是,在使用PXE安装时,在自定义系统选项的安装源会自动寻找到FTP下载源的位置

至此,部署有人值守实验结束

部署无人值守操作步骤

无人值守:只用开启需要批量装机的主机

在有人值守环境配置的基础上,还需要一个应答文件,包含了安装操作系统所需的各种参数和配置选项,使用该文件还需要较高的带宽

这些参数可以指定如何分区硬盘、选择安装的软件包、设置管理员密码、配置网络设置等。通过预先配置好这些选项,可以实现在没有用户交互的情况下完成整个安装过程。

一. 环境配置

安装所需软件包

在安装过Xmanager的前提下,输入system-config-kickstart命令

调出应答程序的图形化管理界面,如果你的操作系统没有桌面,应答程序的图形化管理界面是调不出来的

现在就可以配置装机时的系统参数了

添加分区

创建3个分区

需要注意的是,最后的 / 根分区需要选择使用磁盘上全部未用空间,也会在分区表中显示大小为1

修改防火墙配置

如果软件包选择的界面是空白的就要检查仓库文件的仓库标识是否为development

假如要安装一个带桌面的系统,勾选如下选项

去相应命令检查该文件是否生成

修改引导程序配置文件,修改prompt为0,并指定应答文件位置

二. 测试

像有人值守的操作步骤一样新建虚拟机

进入系统不需要进行人为操作,自动安装好系统。至此实验结束

总结

1. 实现PXE远程装机所需要的组件

    • iso中的系统文件(放到FTP中)
    • FTP
    • DHCP(RARP为客户端分配地址;指定TFTP的IP;指定引导程序pxelinux.0)
    • TFTP(内核文件、初始化镜像文件、引导程序、引导配置文件)

2. PXE网络引导安装过程

  1. 开机后,BIOS按预设顺序选择PXE作为启动选项
  2. 主机通过DHCP协议请求获取IP地址和其他网络配置信息
  3. DHCP服务器响应并分配IP地址后,主机使用TFTP协议从PXE服务器下载PXE引导程序(pxelinux.0)
  4. 主机加载PXE引导程序。该引导程序根据预定规则寻找配置文件(pxelinux.cfg/default),由该配置文件决定如何继续引导操作系统安装过程
  5. 根据引导程序的配置文件,接着从TFTP服务器下载初始化镜像文件(Initrd.img)和内核文件(vmlinuz)
  6. 引导程序将下载的内核文件和初始化镜像文件加载到计算机的内存中,并在内存中启动安装程序

这篇关于PXE无人值守批量装机操作步骤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1076775

相关文章

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

C#实现一键批量合并PDF文档

《C#实现一键批量合并PDF文档》这篇文章主要为大家详细介绍了如何使用C#实现一键批量合并PDF文档功能,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言效果展示功能实现1、添加文件2、文件分组(书签)3、定义页码范围4、自定义显示5、定义页面尺寸6、PDF批量合并7、其他方法

Python批量替换多个Word文档的多个关键字的方法

《Python批量替换多个Word文档的多个关键字的方法》有时,我们手头上有多个Excel或者Word文件,但是领导突然要求对某几个术语进行批量的修改,你是不是有要崩溃的感觉,所以本文给大家介绍了Py... 目录工具准备先梳理一下思路神奇代码来啦!代码详解激动人心的测试结语嘿,各位小伙伴们,大家好!有没有想

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

Python实现批量提取BLF文件时间戳

《Python实现批量提取BLF文件时间戳》BLF(BinaryLoggingFormat)作为Vector公司推出的CAN总线数据记录格式,被广泛用于存储车辆通信数据,本文将使用Python轻松提取... 目录一、为什么需要批量处理 BLF 文件二、核心代码解析:从文件遍历到数据导出1. 环境准备与依赖库

linux批量替换文件内容的实现方式

《linux批量替换文件内容的实现方式》本文总结了Linux中批量替换文件内容的几种方法,包括使用sed替换文件夹内所有文件、单个文件内容及逐行字符串,强调使用反引号和绝对路径,并分享个人经验供参考... 目录一、linux批量替换文件内容 二、替换文件内所有匹配的字符串 三、替换每一行中全部str1为st

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

Python自动化批量重命名与整理文件系统

《Python自动化批量重命名与整理文件系统》这篇文章主要为大家详细介绍了如何使用Python实现一个强大的文件批量重命名与整理工具,帮助开发者自动化这一繁琐过程,有需要的小伙伴可以了解下... 目录简介环境准备项目功能概述代码详细解析1. 导入必要的库2. 配置参数设置3. 创建日志系统4. 安全文件名处