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

PXE批量网络装机与Kickstart自动化安装工具

目录

一、系统装机的原理

1.1、系统装机方式

1.2、系统安装过程

 二、PXE批量网络装机

2.1、PXE实现原理

2.2、搭建PXE实际案例

2.2.1、安装必要软件

2.2.2、搭建DHCP服务器

2.2.3、搭建TFTP服务器

2.2.4、挂载镜像并拷贝引导文件到tftp服务启动引导文件夹下

2.2.5、编辑pxelinux.cfg配置文件

2.2.6、启动服务

2.2.7、验证PXE批量网络装机

三、kickstart自动化安装操作系统工具

3.1、安装kickstart

 3.2、基本配置

 3.3、安装方法

3.4、引导装载程序选择

3.5、分区信息

3.6、防火墙配置

3.7、显示配置

3.8、保存配置

3.9、编辑default配置文件

3.10、验证


一、系统装机的原理

1.1、系统装机方式
  • U盘装机:U盘作为启动介质,将操作系统镜像写入U盘,然后通过U盘启动计算机进行系统安装。
  • 光盘装机:将操作系统镜像刻录到光盘中,通过光驱启动计算机进行装机。
  • 网卡装机:从网络中的服务器上加载操作系统镜像来进行装机。
1.2、系统安装过程
  • 加载bootloader:它位于硬盘的引导扇区(MBR、GPT)中,负责初始化硬件并加载操作系统内核。
  • 加载启动安装菜单
  • 加载内核与initrd系统
  • 加载根系统
  • 运行anaconda的安装向导

 二、PXE批量网络装机

PXE 的全称是 preboot execute environment它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。

PXE实现网卡引导启动的条件:

  • BIOS支持
  • 网卡支持
  • BIOS中开启网络装机,默认关闭状态。
  • DHCP服务器用于分配IP地址并引导客户端到TFTP服务器提供启动程序和操作系统镜像。
2.1、PXE实现原理

  •  客户端启动:客户端开机后通过网卡发送DHCP请求。
  • DHCP响应:DHCP服务器分配IP地址,并告知TFTP服务器器地址及引导文件路径。
  • 下载引导文件:客户端从TFTP服务器获取引导文件(pxelinux.0、grub)。
  • 加载内核和镜像:通过引导文件加载内核(vmlinuz)和初始化内存盘(initrd.img)。
  • 自动化安装:从文件服务器(HTTP、FTP、NFS)获取操作系统镜像和配置文件,完成网络装机。
2.2、搭建PXE实际案例
2.2.1、安装必要软件

为实现网络远程装机,需要DHCP服务、syslinux引导加载程序(pxelinux.0)、TFTP服务与FTP服务,所以预先安装这四个软件。

[root@localhost ~]# systemctl stop firewalld.service     //关闭防火墙
[root@localhost ~]# setenforce 0                         //关闭selinux
[root@localhost ~]# yum install tftp-server vsftpd syslinux dhcp -y
已安装:dhcp.x86_64 12:4.2.5-83.el7.centos.2  syslinux.x86_64 0:4.05-15.el7  tftp-server.x86_64 0:5.2-22.el7  vsftpd.x86_64 0:3.0.2-29.el7_9 作为依赖被升级:dhclient.x86_64 12:4.2.5-83.el7.centos.2   dhcp-common.x86_64 12:4.2.5-83.el7.centos.2   dhcp-libs.x86_64 12:4.2.5-83.el7.centos.2  完毕!
[root@localhost ~]# 
2.2.2、搭建DHCP服务器
[root@localhost ~]# cat /etc/dhcp/dhcpd.conf    //查看模板配置文件路径
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
[root@localhost ~]# cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y        //拷贝模板配置文件并覆盖源文件
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf 
//拷贝子网配置,粘贴并进行修改27 subnet 192.168.153.0 netmask 255.255.255.0 {    //改为DHCP服务器IP地址与子网掩码28   range 192.168.153.20 192.168.153.100;         //设置自动分配地址段范围29   option routers 192.168.153.2;                 //网关30   next-server 192.168.153.223;                  //指向TFTP服务器的IP地址31   filename "pxelinux.0";                        //引导程序文件的名称32 }
2.2.3、搭建TFTP服务器
[root@localhost ~]# rpm -qc tftp-server         //查看配置文件路径
/etc/xinetd.d/tftp
[root@localhost ~]# vim /etc/xinetd.d/tftp      //编辑配置文件14         disable                 = no        //yes改为no,关闭禁用
2.2.4、挂载镜像并拷贝引导文件到tftp服务启动引导文件夹下
[root@localhost ~]# mkdir /var/ftp/centos7
[root@localhost ~]# mount /dev/sr0 /var/ftp/centos7/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# rpm -ql syslinux |grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@localhost ~]# cp /var/ftp/centos7/isolinux/vmlinuz /var/lib/tftpboot/
[root@localhost ~]# cp /var/ftp/centos7/isolinux/initrd.img /var/lib/tftpboot/
2.2.5、编辑pxelinux.cfg配置文件
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# cd /var/lib/tftpboot/pxelinux.cfg
[root@localhost pxelinux.cfg]# vim default1 default linux2 timeout 6003 4 label linux5         kernel vmlinuz6         append initrd=initrd.img method=ftp://192.168.153.223/centos77 8 label linux text9         kernel vmlinuz10         append text initrd =initrd.img method=ftp://192.168.153.223/centos711 12 label linux rescue13         kernel vmlinuz14         append rescue initrd=initrd.img method=ftp://192.168.153.223/centos7
2.2.6、启动服务
[root@localhost pxelinux.cfg]# systemctl start dhcpd vsftpd tftp
[root@localhost pxelinux.cfg]# systemctl status dhcpd vsftpd tftp
● dhcpd.service - DHCPv4 Server DaemonLoaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; vendor preset: disabled)Active: active (running) since 四 2025-02-27 22:05:33 CST; 31min agoDocs: man:dhcpd(8)man:dhcpd.conf(5)Main PID: 63999 (dhcpd)Status: "Dispatching packets..."Tasks: 1CGroup: /system.slice/dhcpd.service└─63999 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid2月 27 22:05:33 localhost.localdomain systemd[1]: Started DHCPv4 Server Daemon.● vsftpd.service - Vsftpd ftp daemonLoaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)Active: active (running) since 四 2025-02-27 22:37:11 CST; 5s agoProcess: 64508 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)Main PID: 64512 (vsftpd)Tasks: 1CGroup: /system.slice/vsftpd.service└─64512 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf2月 27 22:37:11 localhost.localdomain systemd[1]: Starting Vsftpd ftp daemon...
2月 27 22:37:11 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon.● tftp.service - Tftp ServerLoaded: loaded (/usr/lib/systemd/system/tftp.service; indirect; vendor preset: disabled)Active: active (running) since 四 2025-02-27 22:37:11 CST; 5s agoDocs: man:in.tftpdMain PID: 64510 (in.tftpd)Tasks: 1CGroup: /system.slice/tftp.service└─64510 /usr/sbin/in.tftpd -s /var/lib/tftpboot2月 27 22:37:11 localhost.localdomain systemd[1]: Started Tftp Server.
2.2.7、验证PXE批量网络装机

关闭虚拟机的DHCP服务,避免冲突。

新建虚拟机,建议内存分配2G以上,以免引导文件没有足够内存展开。

 启动后,自动获取IP地址,并加载引导程序,PXE批量网络装机完成。

三、kickstart自动化安装操作系统工具

它通过一个配置文件(通常称为ks.cfg)定义安装过程中的所有选项,从而实现无人值守安装。

避免安装linux图形界面后,仍需要人工完成系统引导。

3.1、安装kickstart
[root@localhost ~]# yum install system-config-kickstart -y

 3.2、基本配置

 3.3、安装方法

3.4、引导装载程序选择

3.5、分区信息

3.6、防火墙配置

3.7、显示配置

3.8、保存配置

3.9、编辑default配置文件
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default 4 label linux5         kernel vmlinuz6         append initrd=initrd.img method=ftp://192.168.153.223/centos7 ks=ftp://192.168.153.223/ks.fcg  //指向ks.fcg文件,实现无人值守完成系统引导
3.10、验证

开始自动进行系统引导操作,验证完成

相关文章:

PXE批量网络装机与Kickstart自动化安装工具

目录 一、系统装机的原理 1.1、系统装机方式 1.2、系统安装过程 二、PXE批量网络装机 2.1、PXE实现原理 2.2、搭建PXE实际案例 2.2.1、安装必要软件 2.2.2、搭建DHCP服务器 2.2.3、搭建TFTP服务器 2.2.4、挂载镜像并拷贝引导文件到tftp服务启动引导文件夹下 2.2.5、编…...

css的复合选择器

1.1什么是复合选择器 在css中,选择器分为基础选择器和复合选择器,复合选择器是建立在基础选择器之上,对基本选择器进行组合形成。 复合选择器可以更准确、更高效的选择目标元素(标签)由两个或多个基础选择器,通过不同的方式组合…...

Wireshark Lua 插件教程

本⽂主要介绍 Lua 脚本在 Wireshark 中的应⽤, Lua 脚本可以在 Wireshark 中完成如下功能: 从⽹络包中提取数据, 或者统计⼀些数据包(Dumper) 需要解析⼀种 Wireshark 不提供原⽣⽀持的协议(Dissector) ⽰例 协议解析 VREP 协议是 NOGD 框架对于 TRIP 协议的⼀种延伸和扩展…...

mysql怎样优化where like ‘%字符串%‘这种模糊匹配的慢sql

一 问题描述 工作中经常遇到这种模糊匹配的慢sql: select * from 表名 where 字段 like %字符串%; 由于前面有%,导致无法走该字段上的索引。 二 解决办法 ① 给该字段创建一个全文索引 CREATE FULLTEXT INDEX 索引名 ON 表名 (字段名); ② 改写sq…...

Python代码片段-断点任务

使用Python处理一堆长耗时任务的时候,为了防止异常退出程序或者手动退出程序后丢失任务进度,可用使用断点的方式记录任务进度,下次重载任务后,继续运行上次未完成的任务即可。 这里用json文件作为数据持久化的方式,免…...

mapbox基础,使用geojson加载heatmap热力图层

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️heatmap热力图层样式二、🍀使用geojs…...

03.检测 Zabbix agent

TOC 利用 zabbix_get 工具测试 Zabbix Agent 是否正常 # 安装 zabbix-get [rootUbuntu2204 ~]#apt install -y zabbix-get# 使用zabbix_get 工具查看验证 agent 是否正常 返回1表示正常 [rootUbuntu2204 ~]#zabbix_get -s 10.0.0.110 -p 10050 -k "agent.ping"故障…...

Vue 3 + Vite 项目配置访问地址到服务器某个文件夹的解决方案

前言 在开发 Vue 3 Vite 项目时,我们经常需要将项目部署到服务器的某个特定文件夹下。例如,将项目部署到 /my-folder/ 目录下,而不是服务器的根目录。这时,我们需要对 Vite 和 Vue Router 进行一些配置,以确保项目能…...

JavaScript将:;隔开的字符串转换为json格式。使用正则表达式匹配键值对,并构建对象。多用于解析cssText为style Object对象

// 使用正则表达式匹配键值对,并构建对象 let string2Json(s)>{const r {};s.replace(/;/g, ;).replace(/\;/g, \n).replace(/:/g, :).replace(/\n/g, \n)//合并多个换行符.split(\n).forEach(item > {const [k, v] item.split(:);(k…...

MT-Metrics

MT-Metrics 是一类用于评估生成文本质量的指标,最初用于机器翻译任务,后来扩展到生成任务(如对话生成、文本摘要等)。它的核心思想是通过比较生成文本与参考文本之间的相似性(如词汇重叠、句法结构、语义相似性&#x…...

【数据结构第十六节】实现链式结构二叉树(详细递归图解—呕心沥血版!)

必须有为成功付出代价的决心,然后想办法付出这个代价。云边有个稻草人-CSDN博客 这节课挺抽象(苦笑),没事,我会帮你!干就完了! (目录在路上) 正文开始—— 引言 用链表…...

【Python爬虫(100)】从当下到未来:Python爬虫技术的进阶之路

【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取,还涉及数据处理与分析。无论是新手小白还是进阶开发…...

Vue-Flow绘制流程图(Vue3+ElementPlus+TS)简单案例

本文是vue3Elementplusts框架编写的简单可拖拽绘制案例。 1.效果图&#xff1a; 2.Index.vue主代码&#xff1a; <script lang"ts" setup> import { ref, markRaw } from "vue"; import {VueFlow,useVueFlow,MarkerType,type Node,type Edge } fro…...

CNN:卷积网络中设计1×1夹在主要卷积核如3×3前后的作用

话不多说直接上图举例&#xff1a; 像在 ResNet 的 Bottleneck 结构 中&#xff0c;1x1 卷积 被放置在 3x3 卷积 的前后&#xff0c;这种设计有以下几个关键作用和优势&#xff1a; 1. 降低计算复杂度 问题&#xff1a;直接使用 3x3 卷积计算量较大&#xff0c;尤其是当输入和…...

esp8266 rtos sdk开发环境搭建

1. 安装必要的工具 1.1 安装 Git Git 用于从远程仓库克隆代码&#xff0c;你可以从Git 官方网站下载 Windows 版本的安装程序。安装过程中可保持默认设置&#xff0c;安装完成后&#xff0c;在命令提示符&#xff08;CMD&#xff09;或 PowerShell 中输入git --version&#…...

【深度学习】矩阵的核心问题解析

一、基础问题 1. 如何实现两个矩阵的乘法&#xff1f; 问题描述&#xff1a;给定两个矩阵 A A A和 B B B&#xff0c;编写代码实现矩阵乘法。 解法&#xff1a; 使用三重循环实现标准矩阵乘法。 或者使用 NumPy 的 dot 方法进行高效计算。 def matrix_multiply(A, B):m, n …...

DeepSeek模型昇腾部署优秀实践

2024年12月26日&#xff0c;DeepSeek-V3横空出世&#xff0c;以其卓越性能备受瞩目。该模型发布即支持昇腾&#xff0c;用户可在昇腾硬件和MindIE推理引擎上实现高效推理&#xff0c;但在实际操作中&#xff0c;部署流程与常见问题困扰着不少开发者。本文将为你详细阐述昇腾 De…...

从 Spring Boot 2 升级到 Spring Boot 3 的终极指南

一、升级前的核心准备 1. JDK 版本升级 Spring Boot 3 强制要求 Java 17 及以上版本。若当前项目使用 Java 8 或 11&#xff0c;需按以下步骤操作&#xff1a; 安装 JDK 17&#xff1a;从 Oracle 或 OpenJDK 官网下载&#xff0c;配置环境变量&#xff08;如 JAVA_HOME&…...

mysql架构查询执行流程(图解+描述)

目录 mysql架构查询执行流程 图解 描述 mysql架构查询执行流程 图解 描述 用户连接到数据库后&#xff0c;由连接器处理 连接器负责跟客户端建立连接、获取权限、维持和管理连接 客户端发送一条查询给服务器 服务器先检查查询缓存&#xff0c;如果命中缓存&#xff0c;则立…...

20分钟 Bash 上手指南

文章目录 bash 概念与学习目的第一个 bash 脚本bash 语法变量的使用位置参数管道符号&#xff08;过滤条件&#xff09;重定向符号条件测试命令条件语句case 条件分支Arrayfor 循环函数exit 关键字 bash 脚本记录历史命令查询文件分发内容 bash 概念与学习目的 bash&#xff0…...

FUTURE POLICE模型推理服务化:使用FastAPI构建高性能API网关

FUTURE POLICE模型推理服务化&#xff1a;使用FastAPI构建高性能API网关 想把训练好的FUTURE POLICE模型变成一个随时可以调用的服务吗&#xff1f;比如&#xff0c;让一个移动应用上传一段音频&#xff0c;就能立刻收到模型的分析结果。自己写个简单的脚本虽然也能跑&#xf…...

LiuJuan20260223Zimage国风美学生成模型v1.0入门:Node.js环境调用与API开发

LiuJuan国风美学生成模型v1.0入门&#xff1a;Node.js环境调用与API开发 最近在尝试一些AI图像生成项目&#xff0c;发现很多模型对中文场景和东方美学的支持还不够好。直到我遇到了LiuJuan国风美学模型&#xff0c;它专门针对国风、古风、东方元素进行优化&#xff0c;生成的…...

企业年会春联批量生成方案:Pixel Couplet Gen 结合Java八股文风格创作

企业年会春联批量生成方案&#xff1a;Pixel Couplet Gen 结合Java八股文风格创作 1. 场景痛点&#xff1a;企业年会的文化需求与技术创意 每到年末&#xff0c;行政部门的同事总会面临一个看似简单却令人头疼的任务——为企业年会准备定制化春联。传统方式要么花钱请人创作&…...

软考 系统架构设计师系列知识点之杂项集萃(117)

接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(116) 第214题 在磁盘上存储数据的排列方式会影响I/O服务的总时间。假设每磁道划分成10个物理块,每块存放1个逻辑记录。逻辑记录R1,R2,……,R10存放在同一个磁道上,记录的安排顺序如下表所示: 物理块 1 2 3 4 5…...

5步精通抖音批量下载工具:从单视频到整主页的高效解决方案

5步精通抖音批量下载工具&#xff1a;从单视频到整主页的高效解决方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback s…...

Phi-4-reasoning-vision-15B在研发协作中的应用:代码IDE截图理解与问题定位

Phi-4-reasoning-vision-15B在研发协作中的应用&#xff1a;代码IDE截图理解与问题定位 1. 引言&#xff1a;研发协作中的视觉理解需求 在软件开发团队中&#xff0c;工程师们每天都要处理大量代码截图和IDE界面。当遇到问题时&#xff0c;最常见的做法是把报错截图或代码片段…...

Java JDK1.9快速下载与安装指南

1. Java JDK1.9简介与下载准备 Java Development Kit&#xff08;JDK&#xff09;是Java开发的核心工具包&#xff0c;而JDK1.9作为早期版本&#xff0c;虽然现在已经不是主流选择&#xff0c;但在某些特定场景下仍然有开发者需要使用。如果你正在寻找JDK1.9的下载和安装方法&a…...

OpenClaw日程管理:千问3.5-9B解析邮件创建待办

OpenClaw日程管理&#xff1a;千问3.5-9B解析邮件创建待办 1. 为什么需要AI助手管理日程&#xff1f; 每天早上打开邮箱&#xff0c;总能看到十几封未读邮件——会议邀请、项目更新、待办提醒混杂在一起。上周我就因为漏看了一封包含截止日期变更的邮件&#xff0c;差点耽误了…...

实战Electron跨进程通信实现SerialPort串口数据交互

1. 为什么Electron 9.0需要跨进程通信处理串口&#xff1f; 第一次用Electron对接工业秤重设备时&#xff0c;我直接把SerialPort代码写在渲染进程&#xff0c;结果控制台突然报错——就像被泼了盆冷水。原来从Electron 9.0开始&#xff0c;安全策略禁止渲染进程直接调用原生No…...

Windows下OpenClaw安装详解:Qwen3.5-9B接口对接避坑指南

Windows下OpenClaw安装详解&#xff1a;Qwen3.5-9B接口对接避坑指南 1. 为什么选择WindowsOpenClaw组合 去年开始接触AI自动化工具时&#xff0c;我尝试过不少方案&#xff0c;但要么需要复杂的Linux环境配置&#xff0c;要么对个人开发者不够友好。直到发现OpenClaw这个能在…...