Linux网络——PXE高效批量网络装机

2023-10-27

Linux网络——PXE高效批量网络装机

一、PXE远程安装服务

定义:PXE(预启动执行环境,在操作系统之前运行) 是由Intel公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。

1.PXE批量部署的优点

规模化: 同时装配多台服务器
自动化: 安装系统、配置各种服务
远程实现:不需要光盘、U盘等安装介质

在这里插入图片描述

2.搭建PXE网络体系的安装条件

客户端:客户机的网卡要支持EXE协议(集成BOOTROM心片),且主板支持网络引导。一般大多数服务器主机都支持,只需在BIS设置中允许从 netwok或 LAN 启动即可。
服务端:网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置。服务器要通过 TETP服务(简单文件传输协议) 来提供系统内核和引导镜像文件的下载

二、PXE 安装进行前的配置

1.PXE装机所需的文件

文件 位置 作用
pxelinux.0 来自syslinux程序 引导程序的配置文件
vmlinuz 从光盘中获取,位于 isolinux 目录下 内核文件
initrd.img 从光盘中获取,位于 isolinux 目录下 系统启动镜像文件
default 需要手写 引导程序的配置文件

2.搭建 PXE 过程中使用的服务和程序

①.DHCP服务

DHCP是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码,同时也能配合DNS解析使用,让指定范围内的客户机能够自动获取解析域名的后缀。
DHCP作为用应用层协议,它依靠并且使用着传输层中udp协议。对于DHCP中分为客户端,和服务端。客户端用的端口为68 ,服务端的端口为67.

②.vsftpd服务

vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服务器不支持的特征。
20端口用于建立数据连接,并传输文件数据
21端口用于建立控制连接,并传输FTP控制命令

③.TFTP服务

TFTP(简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
TFTP服务默认由xinetd服务进行管理,使用UDP69端口。TFTP服务一般只在装机这种场景下使用,用于传输内核和引导文件。因为安全性不高。它的位置存在:/var/lib/tftpboot

④.syslinux

syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。

三、搭建 PXE 远程安装服务器

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

1.安装相关服务的软件包(FTP,DHCP,TFTP,PXE)

在这里插入图片描述

2.修改TFTP服务的配置文件

在这里插入图片描述

3.启动TFTP服务

在这里插入图片描述

4.修改DHCP服务的配置文件

vim /etc/dhcp/dhcpd.conf                            #配置DHCP参数
ddns-update-style none;						        #禁用 DNS 动态更新
next-server 192.168.30.10; 					        #指定 TFTP 服务器的地址
filename "pxelinux.0";						        #指定 PXE 引导程序的文件名

subnet 192.168.30.0 netmask 255.255.255.0 {			#声明要分配的网段地址
range 192.168.30.100 192.168.30.200;				#设置地址池
option routers 192.168.30.10;						#默认网关地址指向TFTP服务器的IP地址
}

在这里插入图片描述

5.关闭防火墙,启动DHCP服务

在这里插入图片描述

6.挂载光盘,准备 Linux 内核、初始化镜像文件,PXE 引导程序

mount /dev/sr0 /mnt                                     ##将光盘挂载到mnt目录
cd /mnt/images/pxeboot		                            ##切换到光盘挂载目录
cp vmlinuz /var/lib/tftpboot/		                    ##复制 Linux系统的内核文件 到TFTP根目录下
cp initrd.img /var/lib/tftpboot/              	        ##复制 初始化镜像文件(linux引导加载模块)到TFTP根目录下
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/	##复制 PXE引导程序 到TFTP根目录下

在这里插入图片描述

7.准备CentOS 7 安装源 ,启动FTP服务

在这里插入图片描述

6.配置启动菜单文件

在这里插入图片描述

7.验证 PXE 网络安装

在这里插入图片描述

使用 VMware创建的虚拟机进行测试,虚拟机内存至少需要 2GB,否则在启动安装时可能会报错。
开启虚拟机,在提示字符串“boot:”后直接按Enter键(或执行“auto”命令),将会自动通过网络下载安装文件,并进入默认的图形安装入口;
若执行“linux text”命令,则进入文本安装入口;若执行 “linux rescue”命令,则进入救援模式。

三、实现 Kickstart 无人信守安装

上面的安装,是通过PXE技术远程安装系统的方法,安装介质不再受限于光盘,移动硬盘等设备,大大提高了系统安装的灵活性。然而安装期间仍需要手动选择语言、键盘类型、指定安装源等一系列交换操作,当需要大批量安装时仍然很麻烦。所以要想实现真正的全自动化,就要引入Kickstart程序服务,实现真正完全全自动化安装。

1.安装system-config-kickstart 工具

在这里插入图片描述

2.打开“Kickstart 配置程序”窗口

在这里插入图片描述

3.配置kickstart选项

①.基本配置

在这里插入图片描述

②.安装方法

在这里插入图片描述

③.引导装载程序选项

在这里插入图片描述

④.分区信息

在这里插入图片描述

⑤.网络配置

在这里插入图片描述

⑥.防火墙配置

在这里插入图片描述

⑦.安装后脚本

在这里插入图片描述

4.保存自动应答文件

在这里插入图片描述

5.配置需要安装的软件包

将 /root/anaconda-ks.cfg 的软件包安装脚本中 %packages 到%end 部分复制到 ks.cfg 文件中。
在这里插入图片描述

6.编辑引导菜单文件 default,添加 ks 引导参数

在这里插入图片描述

7.进行测试,只需要打开虚拟机,不用做任何操作

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux网络——PXE高效批量网络装机 的相关文章

  • 用于 e NetworkManager VPN 连接的 dbus 信号处理程序

    我需要开发一些在建立 VPN 连接时执行的 python 代码 VPN 由 NetworkManager 控制 我试图弄清楚如何为此使用 NM DBUS 事件 使用 dbus monitor system 我能够识别连接信号 signal
  • EULA 接受 Bash 脚本

    我有一个尝试安装垃圾箱的脚本 除了 bin 在 more 中打开 EULA 之外 一切正常 在脚本再次开始并自行完成安装之前 您必须手动 ctrl c 退出此 more 实例 因为这更多的是逃离 shell 所以脚本在打开后不知道要运行什么
  • SIGHUP 用于重新加载配置

    根据signal 7 SIGHUP用于检测控制终端的挂起或控制进程的死亡 然而 我遇到过很多 OSS 守护进程 服务 其中SIGHUP用于启动配置的重新加载 这里有一些例子 hostapd sshd snort etc 这是实现重新加载的标
  • 重新链接匿名(未链接但打开)文件

    在 Unix 中 可以创建匿名文件的句柄 例如 使用 creat 创建并打开它 然后使用 unlink 删除目录链接 留下一个带有 inode 和存储的文件 但没有可能的方法重新打开它 此类文件通常用作临时文件 通常这就是 tmpfile
  • 为什么我的代码在编译用于分析 (-pg) 时在多线程下运行比在单线程下运行慢?

    我正在写一个光线追踪器 最近 我在程序中添加了线程 以利用 i5 四核上的附加内核 奇怪的是 应用程序的调试版本现在运行速度变慢 但优化后的构建运行速度比添加线程之前更快 我将 g pg 标志传递给 gcc 以进行调试构建 并将 O3 标志
  • tar.gz 和 tgz 是同一个东西吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我创建了 tgz 文件tar czvf filecommand then 我最终得到了一个 tgz 文件 我想知道它和tar gz 之间的
  • PHP 日志文件颜色

    我正在编写一个 PHP 日志文件类 但我想为写入文件的行添加颜色 我遇到的问题是颜色也会改变终端的颜色 我想要实现的是仅更改写入日志文件的行的颜色 class logClass extends Singleton private funct
  • 使用 hcitool 扫描低功耗蓝牙?

    当我运行此命令时 BLE 设备扫描仅持续 5 秒 sudo timeout 5s hcitool i hci0 lescan 输出显示在终端屏幕中 但是 当我将输出重定向到文件以保存广告设备的地址时 每次运行该命令时 我都会发现该文件是空的
  • 在Linux中创建可执行文件

    我计划做的一件事是编写 非常简单的 Perl 脚本 并且我希望能够在不从终端显式调用 Perl 的情况下运行它们 我明白 要做到这一点 我需要授予他们执行权限 使用 chmod 执行此操作非常简单 但它似乎也是一个稍微费力的额外步骤 我想要
  • 如何从 Linux 命令行确定 LCD 显示器是否打开

    如何通过 Linux 命令行判断计算机的显示器是否打开 关闭 我传统上认为显示器是仅输出的设备 但我注意到 Gnome 显示器首选项对话框具有 检测显示器 功能 这可以推广到确定显示器是否物理关闭吗 VESA DDC 连接是I2C http
  • Linux Shellcode“你好,世界!”

    我有以下可用的 NASM 代码 global start section text start mov eax 0x4 mov ebx 0x1 mov ecx message mov edx 0xF int 0x80 mov eax 0x1
  • %config(noreplace) 文件上出现意外的 RPM 冲突

    我正在创建我自己的RPM using rpmbuild My RPM 包含配置文件哪个应该永远不会被覆盖 即使 RPM 包含这些配置文件的新版本 为了存档这个 我用以下标签标记了它们 config noreplace opt mypacka
  • C# - OPC-UA 服务器应用程序尚未在 Linux 计算机中创建 PKI 证书

    当我跑步时OPC UA serverWindows 机器中的 C 应用程序 然后 OPC UA 服务器已创建证书路径C ProgramData OPC Foundation pki own 并在此路径中生成一些证书 但是当我在中安装 OPC
  • 为什么 proc/ID/maps 有多个共享库条目

    我正在查看嵌入式Linux下的proc ID maps 我注意到一些共享库在进程的内存映射中出现了几次 为什么会这样呢 40094000 400d9000 r xp 00000000 b3 09 723 system lib libc so
  • X 服务器使用什么像素格式?

    X 服务器使用什么像素格式 RGBA ARBG BGRA 如果有任何特定格式的话 Update 我专门寻找有关颜色分量顺序和位模式的信息 你的意思是帧缓冲区格式 或者所有支持的像素图格式 无论是哪一种 都取决于您的图形硬件 驱动程序和配置
  • shell中基于正则表达式的颜色突出显示输出

    我想知道是否可以用颜色突出显示与某些字符串匹配的 shell 命令的输出 例如 如果我运行 myCommand 输出如下 gt myCommand DEBUG foo bar INFO bla bla ERROR yak yak 我希望所有
  • Linux shell 标题大小写

    我正在编写一个 shell 脚本并有一个如下所示的变量 something that is hyphenated 我需要在脚本中的各个点使用它 如下所示 something that is hyphenated somethingthati
  • 尝试编译 git 但在 linux 中找不到 libcurl

    我想编译支持 http https 的 git 我有 ls usr include curl curlbuild h curl h curlrules h curlver h easy h mprintf h multi h stdchea
  • CMake:使用其他平台的生成器。如何?

    如何使用 CMake 在 Linux 上生成 Visual Studio 项目文件 你不能 您必须在 Windows 上运行 CMake 才能为 Visual Studio 生成
  • Python 线程与 Linux 中的多处理

    基于此question https stackoverflow com questions 807506 threads vs processes in linux我假设创建新流程应该几乎和创造新线程在Linux中 然而 很少的测试显示出截

随机推荐

  • 染色——差分数组板子题

    问题描述 有编号为0到M 的 M 1 个格子 现在有N个操作 x y 表示将从x 到 y的格子染色 问一共有多少个格子被染色 输入 第一行两个整数 分别表示N和M 接下来有N行 每行两个整数 分别表示x和y 输出 输出一个整数 表示有多少个
  • [YOLO专题-12]:YOLO V5 - ultralytics支持的5种不同规模的模型类型比较

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122294915 目录 1 概述 2
  • VR引擎哪家强?主流VR开发引擎大起底

    转载自 http www hiavr com news tech 22826 html ref myread 在VR浪潮面前 Unreal Unity CryENGINE各大游戏引擎纷纷跟进 都决心抓住这个绝无仅有的机会 一举奠定自己的江湖
  • AutoML-A survey of the state-of-the art翻译+总结

    AutoML A Survey of the State of the Art Abstract 深度学习 DL 技术已经渗透到我们生活的各个方面 给我们带来了极大的方便 然而 为特定任务构建高质量的DL系统高度依赖于人类的专业知识 这阻碍
  • Docker 镜像基本命令操作

    目录标题 Docker 镜像基本命令操作 一 Docker 安装 二 镜像操作 Docker 镜像基本命令操作 一 Docker 安装 Docker要求运行在Centos 7上 要求系统为64位 系统内核版本3 10以上 1 uname a
  • 鸿蒙os更新名单,鸿蒙系统首批升级名单 华为鸿蒙系统升级机型名单时间表

    2021年6月2日 在这天华为公布了一直津津乐道的鸿蒙系统 并且推出了HarmonyOS2百机升级计划 一共是分为四个阶段来进行升级 很多朋友还不清楚升级的机型名单和时间都是多少 下面就来为大家分享一下 第一批升级名单 6月2日就可以升级
  • 单电源运放滤波器设计

    在很多情况中 为了阻挡由于虚地引起的直流电平 在 运放的输入端串入了电容 这个电容实际上是一个高通滤波器 在某种意义上说 像这样的单电源运放电 路都有这样的电容 设计者必须确定这个电容的容量必须要比电路中的其他电容器的容量大 100倍以上
  • 模拟开关选型、多路复用器选型

    只列举常用的 芯片均出自TI ADI SGM Nexperia等 国产只考虑CH 泌恒 个人整理 tb均能买到 如有纰漏欢迎纠错
  • 残差网络、Dropout正则化、Batch Normalization浅了解

    残差网络 为什么需要残差网络 残差网络的目的是为了解决深度神经网络在训练过程中遇到的退化问题 即随着网络层数的增加 训练集的误差反而增大 而不是过拟合 残差网络的优点有以下几点 残差网络可以有效地缓解梯度消失或爆炸的问题 因为跳跃连接可以提
  • Python中如何将浮点型数据转换成整型

    在 Python 中 可以使用内置函数 int 将浮点型数据转换为整型 例如 a 3 14 b int a print b 输出结果为 3 注意 转换为整型时 会将浮点数四舍五入到最接近的整数
  • Android 创建淡入淡出动画的详解

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 介绍 淡入淡出动画 也称为 叠化 逐渐淡出一个 View 或 ViewGroup 同时淡入另一个 此动画适用于您希望在应用中切换内容或视
  • 华为机考 创建二叉树 javascript

    请按下列描达构建一颗二叉树 并返回该树的根节点 1 先创建值为 1的根结点 根节点在第0层 2 然后根据operations依次添加节点 operations i height index 表示对第 height 层的第index 个节点n
  • 适合小白入门Spark的全面教程

    问题导读1 spark有哪些使用场景 2 spark有包含哪些组件 3 spark在哪些厂商已经应用 4 spark如何实现地震检测 Apache Spark是一个用于实时处理的开源集群计算框架 它是Apache软件基金会中最成功的项目 S
  • python学习3. 无重复字符的最长子串(滑动窗口)

    makcooo 2019 04 19 15 47 32 271 收藏 分类专栏 python 版权 给定一个字符串 请你找出其中不含有重复字符的 最长子串 的长度 示例 1 输入 abcabcbb 输出 3 解释 因为无重复字符的最长子串是
  • impala对元数据的界面更新操作

    执行 impala shell 即能进入界面操作sql 如果在hive更新了数据之后 而在impala中却无法看到更新后的数据的话 意味着impala里元数据信息还没有刷新 此时在impala操作界面里 执行 invalidate meta
  • 随机数生成方法及其应用

    目录 一 前言 二 伪随机数发生器介绍 三 均匀随机数发生器 四 任意概率分布的随机数发生器 五 产生特定要求的随机数 六 参考资料 一 前言 最近公司的一个项目 需要对一个功能模块进行性能验证 具体什么模块就不说了 验证过程中需要生成大量
  • 2022 年 5 个新 sudo 功能

    导读 最近的 sudo 版本增加了新的功能 使你能够观察和控制以前隐藏的问题 当你想授予你的一些用户管理权限 同时控制和检查他们在你的系统上做什么时 你会使用 sudo 然而 即使是 sudo 也有相当多不可控的地方 想想给予 shell
  • G1收集器特质以及分代理论

    特征 被视为JDK1 7以上版本Java虚拟机的一个重要进化特征 它具备以下特点 并行与并发 G1能充分利用CPU 多核环境下的硬件优势 使用多个CPU CPU或者CPU核心 来缩短Stop The World停顿时间 部分其他收集器原本需
  • 3dsmax Node Event System

    Node Event System 3dsmax 节点事件系统 https help autodesk com view MAXDEV 2022 ENU guid GUID 7C91D285 5683 4606 9F7C B8D3A7CA5
  • Linux网络——PXE高效批量网络装机

    Linux网络 PXE高效批量网络装机 一 PXE远程安装服务 1 PXE批量部署的优点 2 搭建PXE网络体系的安装条件 二 PXE 安装进行前的配置 1 PXE装机所需的文件 2 搭建 PXE 过程中使用的服务和程序 DHCP服务 vs