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

相关文章

怎么关闭Ubuntu无人值守升级? Ubuntu禁止自动更新的技巧

《怎么关闭Ubuntu无人值守升级?Ubuntu禁止自动更新的技巧》UbuntuLinux系统禁止自动更新的时候,提示“无人值守升级在关机期间,请不要关闭计算机进程”,该怎么解决这个问题?详细请看... 本教程教你如何处理无人值守的升级,即 Ubuntu linux 的自动系统更新。来源:https://

Python结合requests和Cheerio处理网页内容的操作步骤

《Python结合requests和Cheerio处理网页内容的操作步骤》Python因其简洁明了的语法和强大的库支持,成为了编写爬虫程序的首选语言之一,requests库是Python中用于发送HT... 目录一、前言二、环境搭建三、requests库的基本使用四、Cheerio库的基本使用五、结合req

Python在固定文件夹批量创建固定后缀的文件(方法详解)

《Python在固定文件夹批量创建固定后缀的文件(方法详解)》文章讲述了如何使用Python批量创建后缀为.md的文件夹,生成100个,代码中需要修改的路径、前缀和后缀名,并提供了注意事项和代码示例,... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果5.

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

使用Python制作一个PDF批量加密工具

《使用Python制作一个PDF批量加密工具》PDF批量加密‌是一种保护PDF文件安全性的方法,通过为多个PDF文件设置相同的密码,防止未经授权的用户访问这些文件,下面我们来看看如何使用Python制... 目录1.简介2.运行效果3.相关源码1.简介一个python写的PDF批量加密工具。PDF批量加密

Python按条件批量删除TXT文件行工具

《Python按条件批量删除TXT文件行工具》这篇文章主要为大家详细介绍了Python如何实现按条件批量删除TXT文件中行的工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.简介2.运行效果3.相关源码1.简介一个由python编写android的可根据TXT文件按条件批

Java实现批量化操作Excel文件的示例代码

《Java实现批量化操作Excel文件的示例代码》在操作Excel的场景中,通常会有一些针对Excel的批量操作,这篇文章主要为大家详细介绍了如何使用GcExcel实现批量化操作Excel,感兴趣的可... 目录前言 | 问题背景什么是GcExcel场景1 批量导入Excel文件,并读取特定区域的数据场景2

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

Python脚本:对文件进行批量重命名

字符替换:批量对文件名中指定字符进行替换添加前缀:批量向原文件名添加前缀添加后缀:批量向原文件名添加后缀 import osdef Rename_CharReplace():#对文件名中某字符进行替换(已完结)re_dir = os.getcwd()re_list = os.listdir(re_dir)original_char = input('请输入你要替换的字符:')replace_ch