当前位置: 首页 > 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 脉神剑给佩奇了,上 吴恩达:机器…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目&#xff0c;该项目是一个 Spring AI 快速入门的样例工程项目&#xff0c;旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计&#xff0c;每个模块都专注于特定的功能领域&#xff0c;便于学习和…...

rm视觉学习1-自瞄部分

首先先感谢中南大学的开源&#xff0c;提供了很全面的思路&#xff0c;减少了很多基础性的开发研究 我看的阅读的是中南大学FYT战队开源视觉代码 链接&#xff1a;https://github.com/CSU-FYT-Vision/FYT2024_vision.git 1.框架&#xff1a; 代码框架结构&#xff1a;readme有…...

【java面试】微服务篇

【java面试】微服务篇 一、总体框架二、Springcloud&#xff08;一&#xff09;Springcloud五大组件&#xff08;二&#xff09;服务注册和发现1、Eureka2、Nacos &#xff08;三&#xff09;负载均衡1、Ribbon负载均衡流程2、Ribbon负载均衡策略3、自定义负载均衡策略4、总结 …...