当前位置: 首页 > news >正文

linux中“PXE高效批量装机”

在大规模的 Linux 应用环境中,如 Web 群集、分布式计算等,服务器往往并不配备光驱设备,在这种情况下,如何为数十乃至上百台服务器裸机快速安装系统呢?传统的 USB光驱、移动硬盘等安装方法显然已经难以满足需求。

PXE                                                              按下电源

1:iso系统镜像                                               开机自检

2:FTP                           读取BIOS中谁是引导设备(光驱,硬盘,U盘,网卡) 

3:DHCP(rarp协议)                                加载引导程序

4:TFTP(简单文件传输协议)          加载初始化镜像

内核文件,初始化镜像文件。                 加载内核

引导程序,引导配置文件。           systemd(init)(守护进程)

                                                             进程树(tree)

本章将学习基于 PXE(Preboot eXecution Environment,预启动执行环境)技术的网络装机方法,并结合 Kickstart 配置实现无人值守自动安装。

上述服务器的批量部署方法,具备以下三个优点:

规模化:同时装配多台服务器;

自动化:安装系统,配置多种服务;

远程实现:不需要光盘,U盘等安装介质。

PXE是由intel公司开的网络引导技术,工作在client/server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。若要搭建PXE网络体系,必须满足以下几个前提条件。

客户机的网卡支持PXE(集成BOOTROM芯片,)且主板型号支持网络引导。

网络中有一台DHCP服务器以便为客户机自动分配地址,指定引导文件位置。

服务器通过TFTP(trivial file transfer protocol,简单文件传输协议)提供引导镜像文件的下载。客户端还没有IP地址,用rarp协议(反向地址解析),以mac地址作为依据向DHCP服务器分一个IP地址。

其中,第一个条件实际上要硬件要求,目前绝大数服务器和大多数PC都能提供此支持,只需在BIOS设置中允许从NEWORK或LAN启动即可。下面将介绍PXE远程安装服务的基本部署过程。

搭建PXE远程安装服务器

本例的PXE远程安装服务器集成了centos7安装源,TFTP服务,DHCP服务,能够向客户机裸机发送PXE引导程序,LINUX内核,启动菜单等数据,以及提供安装文件。

1,准备centos7安装源

centos7的网络安装源一般通过HTTP,FTP协议发布,另外也支持NFS(network file system,网络文件系统)协议。

例如,若采用FTP协议发布安装源,可以在服务器上部署一个YUM软件仓库。

2,安装并启用TFTP服务

TFTP服务由tftp-server软件包提供,配置文件位于/etc/xinetd.d/tftp。配置时只要将“disable=yes”改为“disable=no”,然后启动TFTP服务即可。

3,准备LINUX内核,初始化镜像文件。

用于PXE网络安装的LINUX内核,初始化镜像文件可以从centos7系统光盘获得,分别为vmlinuz和initrd.img,位于文件夹images/pxeboot下,找到这两个文件并将其复制到tftp服务的根目录下。

4,准备PXE引导程序

用于PXE网络安装的引导程序为pxelinunx,0,由软件包syslinux提供,安装好软件包syslinux,然后将文件pxelinux.0也复制到tftp服务的根目录下。

5,安装并启用DHCP服务

由于PXE客户机通常是尚未安装的系统的裸机,因此为了与服务器取得联系并正确下载相关引导文件,需要预先配置好DHCP服务来自动分配地址并告知引导文件位置。如PXE服务器的IP地址为192.168.4.254,DHCP地址池为192.168.4.100——192.168.4.200,即可以参考一下操作来搭建DHCP服务器。

从上述过程可以看到,与一般DHCP服务不同的是,配置文件增加了netx-server和filename这两行记录,分别用来指定TFTP服务器的地址和PXE引导过程的文件名。

6,配置启动菜单文件

启动菜单用来指导客户积极的引导过程,包括如何调用内核,如何加载初始化镜像。默认的启动菜单文件为default,应放置在tftp根目录的pxelinux.cfg子目录下,典型的启动菜单配置可参考以下操作手动建立。

上述配置记录中定义了三个引导入口,分别为图形安装(配置),文本安装,救援模式。其中,prompt用来设置是否等待用户选择;label用来定义并分隔启动项,kernrl和append用来定义引导参数。引导入口的个数及内容根据需要自行定义。例如,实现无人能值守安装时只需要一个入口就够了。

验证PXE网络安装

搭建好PXE远程安装服务器以后,就可以使用客户机进行安装测试了。对于新购买的服务器或PC裸机,一般不需要额外设置,若要为已有系统的主机重装系统,则可能需要修改BIOS设置,将“BOOT FIRST”改为“NETWORK ”或“LAN”,然后重启主机,若使用vmware创建的虚拟机进行测试,虚拟机内存至少需要2GB,否则在启动安装时会报错。

如果服务器配置正确,网络连接,PXE支持等都没有问题,则客户机重启后将自动配置IP地址,然后从TFTP服务器中获取引导程序pxelinux,0,并根据引导菜单配置意提示用户指定启动入口,如图6,1所示。

在提示子串“boot”后直接按enter键(或执行“auto”命令),将会进入默认的图形安装入口,若执行“linux text”命令,则进入文本安装入口,若执行“linux rescue”命令,则进入救援模式。

直接按neter键确认后将自动通过网络下载安装文件,并进入图形化安装程序界面,如图6,2所示。若能够成功到达这一步,说明PXE网络安装基本成功。

实现kickstart无人值守安装

上一节介绍了通过PXE技术远程安装centos7系统的方法,安装介质不在受限于光盘,移动硬盘等设置,大大提高了系统安装的灵活性,然而,安装期间仍需要手动选择语言,键盘类型,指定安装源等一系列交互操作,当需要批量安装时非常不方便。

本届将进一步学习如何实现无人值守自动安装,通过使用kickstart工具配置安装应答文件,自动完成安装过程中的各种设置,从而无须手动干预,提高网络装机效率。

准备安装应答文件:

在centos7系统中安装system-config-kickstart工具之后,即可通过图形化向导工具来配置安装应答文件。

如果用户对自动应答文件的配置比较熟悉,也可以直接编辑centos7安装后自动创建的应答文件(/root/anaconda-ks.cfg),根据需要适当修订后使用。

1,配置安装应答参数

通过桌面菜单“应用程序》系统工具》kickstart”即可打开“kickstart配置程序”窗口。

在“kickstart配置程序”窗口中,可以针对基本配置,安装方法,引导装载程序选项,分区信息,网络配置等各种安装设置进行指定,如图所示。

(1)基本配置及安装方法

“基本配置”可参考图6,3来指定。例如,将默认语言设定为“中文(简体)”,时区设为“Asia/shanghai”,根口令设为“pwd123”,高级配置中勾选“安装后重启”。

在“安装方法”界面中,应正确指定centos7的安装放大,如图6,4所示。若有用户验证信息也需一并指定。在“引导装载程序选项”界面中,选择安装新引导装载程序。

(2)分区信息

在“分区信息”界面中,需正确规划硬盘分区方案。例如,可划分一个500MB的/boot分区,4GB的/home分区,2GB的swap分区,将剩余空间划分给根分区,如图所示。

3)网络配置及防火墙配置

在“网络配置”界面中,添加一个网络设备“ens33”,将网络类型设为“DHCP”。

在“防火墙配置”界面中,可以选择禁用SElinux,禁用防火墙。

(4)软件包选择

centos7系统开始不在提供软件包的选择,如图6,6所示。如果需要安装软件包,可以根据需要将/root/anaconda-ks.cfg的软件包安装脚本复制到ks.cfg文件中,只需要复制%packages到%end部分即可,在%packages到%end之间,包含以@开头的软件包列表,将不需要的软件包删除,剩下的就是系统会自动安装的软件包。例如,仅保留以下内容即为采用最小化安装。

(5)安装脚本

在“预安装脚本”界面,“安装后脚本”界面中,可以分别添加在安装前,安装后自动运行的可执行语句。此项设置是服务器的自动化配置变得更加容易。例如。可以使客户机在完成安装后自动设置YUM软件仓库,如图6,7所示。需要注意的是,应确保所编写的代码能够正确执行,以免安装失败。

(6)其他信息

若没有特殊需求,在“验证”界面,“显示配置”界面中,保持默认设置就可以了。

2,保存自动应答文件 保存到/var/ftp中

选择“kickstart配置程序“窗口的”文件“》”保存“命令,指定目标文件夹,文件名,将配置好的应答参数保存为文本文件,如/root/ks.cfg。以后若要修改此应答配置,可以在”kickstart配置程序“窗口中打开进行调整,或者使用vi等文本编辑工具进行修改。

实现批量自动装机

有了自动安装的应答文件后,只要将其放置PXE安装服务器的FTP目录下,并适当修改引导菜单,就可以实现基于网络的批量自动装机了。

1,启用自动应答文件

在PXE远程安装服务器中,将上一节建立的应答文件复制到/var/ftp/centos7目录下,使客户机能够通过ftp://192.168.4.254/centos7/ks.cfg访问,然后编辑引导菜单文件default,添加ks引导参数以制定ks。cfg应答文件的URL路径。

2,验证无人值守安装

启用自动应答安装之后,当客户机每次以PXE方式引导时,将自动下载ks.cfg应答配置文件,然后根据其中的设置安装centos7系统,而无须手工干预,如图6,8所示,这样就可以同时为多台客户机安装系统了。

客户机安装完成以后,检查其YUM软件仓库配置,可以发现已经按照“安装后脚本”的设置自动建立了/etc/yum.repos,d/centos7.repo文件。

注意:如果是在vmware虚拟机环境下,需要禁用vmware的dhcp功能,否则安装文件将无法加载。

相关文章:

linux中“PXE高效批量装机”

在大规模的 Linux 应用环境中,如 Web 群集、分布式计算等,服务器往往并不配备光驱设备,在这种情况下,如何为数十乃至上百台服务器裸机快速安装系统呢?传统的 USB光驱、移动硬盘等安装方法显然已经难以满足需求。 PXE …...

emm, ComfyUI的作者从Stability.AI离职了

🍖背景 今天在更新ComfyUI的过程中,看到Manager中有这样一段描述: 嗯?做了新的官方网站?然后开始新篇章? 难道说ComfyUI的作者从Stability.AI离职了? 赶紧点开链接看了下,emm&…...

Redis-五种数据结构之列表(ziplist、quicklist)

列表 文章目录 列表压缩列表-ziplistziplist 定义级联更新 快速列表-quicklistquicklistNode 定义quicklist 定义quicklist常用操作其他操作quicklist 相对于普通链表优点quick应用场景在redis 中使用quicklist 列表数据类型可以存储一组按插入顺序排序的字符串,他很…...

记一次全设备通杀未授权RCE的挖掘经历

想来上一次挖洞还在一年前的大一下,然后就一直在忙活写论文,感觉挺枯燥的(可能是自己不太适合弄学术吧QAQ),所以年初1~2月的时候,有空的时候就又会挖一挖国内外各大知名厂商的设备,拿了几份思科…...

【数据库编程-SQLite3(一)】sqlite3数据库在Windows下的配置及测试

学习分析 1、资源准备2、环境配置2.1、将资源包下载解压缩保存。2.2、在QT中创建工程,配置环境 3、测试配置3.1、 sqlite3_open函数3.2、sqlite3_close函数3.3、代码测试 1、资源准备 资源包 2、环境配置 2.1、将资源包下载解压缩保存。 解压缩得到以下文件 2.2、在QT中创建…...

YOLOv10改进 | 主干篇 | YOLOv10引入华为VanillaNet替换Backbone

1. VanillaNet介绍 1.1 摘要: 基础模型的核心是“越多越好”的理念,计算机视觉和自然语言处理领域取得的惊人成功就是例证。 然而,优化的挑战和变压器模型固有的复杂性要求范式向简单性转变。 在这项研究中,我们介绍了 VanillaNet,一种设计优雅的神经网络架构。 通过避免…...

C++ 迷宫问题

描述 定义一个二维数组 N*M ,如 5 5 数组下所示: int maze[5][5] { 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走…...

【Linux】Linux文件系统中主要文件夹列举_作用说明

在Linux系统中,文件夹(或称为目录)的组织结构是系统功能和用户数据的重要组成部分。以下是Linux系统中一些主要文件夹的列举及其作用说明: / (根目录): 是Linux文件系统的起点。通常只包含其他目录,不建议直接在其中存…...

移植案例与原理 - HDF驱动框架-驱动配置(1)

HCS(HDF Configuration Source)是HDF驱动框架的配置描述源码,内容以Key-Value为主要形式。它实现了配置代码与驱动代码解耦,便于开发者进行配置管理。应该,类似Linux DTS(Device Tree Source)设备树。 HC-GEN(HDF Configuration Generator)是…...

坚持刷题|反转链表

文章目录 题目思考实现1. 迭代方式实现链表翻转2. 递归方式实现链表翻转 Hello,大家好,我是阿月。坚持刷题,老年痴呆追不上我,今天继续链表:反转链表 题目 LCR 024. 反转链表 思考 翻转链表是一个常见的算法问题&a…...

升级和维护老旧LabVIEW程序

在升级老旧LabVIEW程序至64位环境时,需要解决兼容性、性能和稳定性等问题。本文从软件升级、硬件兼容性、程序优化、故障修复等多个角度详细分析。具体包括64位迁移注意事项、修复页面跳转崩溃、解决关闭程序后残留进程的问题,确保程序在新环境中的平稳运…...

sqlite数据库整体迁移进mysql整个流程并解决中文异常问题

咨询【QQ】 sqlite轻量数据还行,随着数据量增大,不得不迁移进mysql 首先 电脑执行 sqlite3 db.sqlite3 .dump > dump.sql 会把整个sqlite的数据导出进 dump.sql中 紧接着我们把sqlite的sql转换成mysql的sql语句,因为mysql语句和 sq…...

Hadoop3:MapReduce中的Partition原理及自定义Partition

一、默认Partition分区配置 以WC案例来进行验证。 1、设置setNumReduceTasks 修改的代码 这行代码,确定了reduceTask的数量,也确定了分区逻辑 在mapper文件中,打上断点 计算分区的代码 这里会对每一个kv进行计算,然后&#…...

就因为没在大屏项目加全屏按钮,早上在地铁挨了领导一顿骂

“嗯嗯”,“嗯嗯”,“那产品也没说加呀”,“按F11不行吗?”,“嗯嗯”,“好的”。 早上在4号线上,我正坐在地铁里,边上站着的妹子,我看他背着双肩包,打着电话…...

STM32学习记录(八)————定时器输出PWM及舵机的控制

文章目录 前言一、PWM1.工作原理2.内部运作机制3. PWM工作模式4.PWM结构体及库函数 二、PWM控制舵机 前言 一个学习STM32的小白~ 有错误评论区或私信指出提示:以下是本篇文章正文内容,下面案例可供参考 一、PWM 1.工作原理 以向上计数为例&#xff0…...

Vue CLI,Vue Router,Vuex

前言 Vue CLI、Vue Router 和 Vuex 都是 Vue.js 生态系统中的重要组成部分,它们在构建 Vue 应用程序时扮演着关键角色。 Vue CLI Vue CLI 介绍 Vue CLI 是 Vue.js 的官方命令行工具,用于快速搭建 Vue.js 项目。它提供了一个图形界面(通过…...

互联网广告相关概念

互联网广告概念涉及多个关键指标和定价模式,它们帮助广告主和广告平台衡量广告效果、优化广告投放策略,并计算广告成本。以下是互联网广告中一些核心概念的简要概述: 1.ROI (投资回报率) 衡量广告投资的效益,计算公式为&#xff…...

如何在服务器上部署一个java程序

如何在服务器上部署一个java程序? 一、在服务器上安装jdk环境 1.创建目录用于存放jdk文件 cd /usr/local 2.下载最新版oracle jdk22 wget https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.tar.gz 3.解压 tar -zxf jdk-22_linux-x64_bin.ta…...

白酒:中国的酒文化的传承与发扬

中国,一个拥有五千年文明史的国度,其深厚的文化底蕴孕育出了丰富多彩的酒文化。在这片广袤的土地上,酒不仅仅是一种产品,更是一种情感的寄托,一种文化的传承。云仓酒庄的豪迈白酒,正是这一文化脉络中的一颗…...

算法金 | 再见!!!梯度下降(多图)

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 接前天 李沐:用随机梯度下降来优化人生! 今天把达叔 6 脉神剑给佩奇了,上 吴恩达:机器…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性&#xf…...

2025季度云服务器排行榜

在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...

Vue 模板语句的数据来源

&#x1f9e9; Vue 模板语句的数据来源&#xff1a;全方位解析 Vue 模板&#xff08;<template> 部分&#xff09;中的表达式、指令绑定&#xff08;如 v-bind, v-on&#xff09;和插值&#xff08;{{ }}&#xff09;都在一个特定的作用域内求值。这个作用域由当前 组件…...