基于网启PXE服务器的批量定制系统平台

news2025/3/26 10:35:20

项目概述

1.需求

公司新购了一批服务器和台式机,需要为台式机和服务器安装系统,一部分需要安装国产OpenEuler,一部分要求安装CentOS 7.9,同时也要满足定制化需求,即按要求分区安装相应软件。

2.使用开源软件

(1)Linux 操作系统基于pxe技术结合kickstart实现定制化需求。
(2)Linux 操作系统基于cobbler结合自定义ks文件实现定制化需求。
(3)windows 系统安装 iventoy 结合自定义配置文件实现定制化需求。
(4)U盘装系统,制作u盘启动盘引导安装。
(5)服务器通过ipmi远程ISO安装。
(6)刻录光盘,外接光驱安装系统。

3.iventory介绍

(1)主页:https://www.iventoy.com/cn/index.html
(2)iVentoy 可以看成是一个增强版的 PXE 服务器,使用iVentoy 你可以通过网络同时给多台机器启动、安装操作系统。
(3)iVentoy 使用极其简单,无需复杂的配置,直接把 ISO 文件放到指定位置,客户机在启动时根据菜单选择要启动的ISO文件即可。
(4)iVentoy 同时支持 x86 Legacy BIOS、IA32 UEFI、x86_64 UEFI 和 ARM64 UEFI 模式。
(5)iVentoy 支持 110 多种常见类型的操作系统
(6)iVentoy 在运行时会使用系统的一些端口号,这些端口需要在防火墙中放开,否则 iVentoy 会无法正常工作,具体如下:

4.pex介绍

(1)PXE,预启动执行环境(Preboot eXecution Environment,PXE,也被称为预执行环境)提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。
(2)PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。 

项目流程

1.项目环境

项目拓扑结构

软硬件环境清单

 2.在Windows下安装iventoy

3.配置iventory

(1)将需要安装的系统ISO文件都拷贝到D:\iventoy-1.0.20-win64-free\iventoy-1.0.20\iso目录下

 (2)运行软件时需要关闭防火墙

(3)使用管理员身份运行inventory

(4)分析客户端IP地址设置:打开vmware17->编辑菜单->虚拟网络编辑器->VMnet8 NAT 网卡查看网段,点击NAT设置查看网关地址,注意:需要关闭VMware nat模式的dhcp服务,如图:

 3.启动 PXE 服务

(1)在 iVentoy 主界面上选择本机 IP 地址,根据之前的分析设置好 IP 地址池,然后点击绿色的开始按钮即可,如图:

启动服务

 4.系统安装

本文使用VMware workstation 新建虚拟机测试,新建虚拟机时不要加载iso镜像。
新建Centos7.9虚拟机

 

 

iventory自动识别

 由于网络安装加载较慢,需要等待一段时间,后续就和正常装机一样,过程略。

注意:
安装RHEL9/OpenEuler系统时需要上4G内存,否则无法加载设备(https://blog.csdn.net/qq_44839
276/article/details/135271485)
某些系统自定义分区时需要增加biosboot分区或/boot/efi分区,大小100m即可

4.inventory的作用

(1)通过 iVentoy 你无需重新制作ISO文件,只需要简单地为一个ISO文件指定一个或者多个自动安装脚本来实现无人值守、自动安装部署系统的方案。
(2)可以使用 Windows 中的 unattend XML、Redhat/CentOS系列中的 Kickstart 脚本、SUSE系列中的autoYast XML、Debian系列中的preseed脚本等等。 

6.脚本变量扩展

(1)在进行自动安装时,在安装脚本中有一些配置是无法固定写死的,必须根据实际环境进行调整。
(2)最常见的就是对于安装盘的指定,比如我们在安装脚本中指定系统安装到 DISK0 或者 /dev/sda但在有些机器上它对应的那个盘并不是我们想要的那个。 这样可能就把系统安装到错误的盘上了。
(3)针对上述需求,iVentoy 在自动安装脚本中支持 变量扩展 ,变量使用 $$VT_XXX$$ 的形式,其中 VT_XXX
对应变量名。
注意:
(1)包含变量的自动安装脚本文件必须是 UTF-8 编码格式。
(2)只支持下面表格中列出的变量,不支持自定义变量。
(3)变量名两边必须各用2个$$ 符号包起来 。

(5)Ventoy 会自动检测自动安装脚本内是否包含变量,对于不包含变量的脚本不会做扩展处理。
(6)变量扩展是在副本中进行的,不会修改脚本源文件。

7.定制centsos7

(1)复制 kickstart7.cfg 为 CentOS7.cfg 并修改

install

lang en_US.UTF-8

keyboard us

rootpw  123456

firewall --service=ssh

authconfig --enableshadow --passalgo=sha512

selinux --disable

firewall --disabled

timezone --utc Asia/Shanghai

#network --onboot=yes --device=$$VT_MAC_COLON_LOWER$$ --bootproto=static --

ip=$$VT_LOCAL_IP$$ --netmask=$$VT_NET_MASK$$ --gateway=$$VT_GATEWAY$$ --noipv6

eula --agreed

firstboot --disable

%include /tmp/partation.ks

zerombr

clearpart --all --initlabel

part /boot --fstype xfs --size 1024

part swap --size 2048

part / --fstype xfs --size 1 --grow

#packages configuration

%packages

@core

bash-completion

chrony

dos2unix

net-tools

lrzsz

nmap

sysstat

telnet

tree

vim

wget

%end

reboot

%pre

#Select install disk

disk_short_name=$$VT_LINUX_DISK_MAX_SIZE$$

echo bootloader --location=mbr --driveorder=$disk_short_name >> /tmp/partation.ks

echo ignoredisk --only-use=$disk_short_name >> /tmp/partation.ks

echo clearpart --all --initlabel --drives=$disk_short_name >> /tmp/partation.ks

%end

#Download third part software

%post

# wget $$VT_IMG_ID_HTTP_URL$$/Packages/kernel-tools-3.10.0-957.el7.x86_64.rpm -O

/root/kernel-tools.rpm

# wget http://$$VT_SERVER_IP$$:$$VT_HTTP_PORT$$/user/xxx.zip -O /root/xxx.zip

%end

 (2)关闭PEX服务

(3)将设置好的自动部署脚本和镜像关联 

(4)启动服务

 本文使用VMware workstation 新建虚拟机测试,新建虚拟机时不要加载iso镜像,测试CentOS7,按回车键。

 

若安装某些系统时卡死,一般都是虚拟机分配的内存不足造成的,建议分配4096m内存

 (5)进行测试

登录系统检测

lsblk

查看防火墙是否启动

systemctl status firewalld

 检查软件包

pm -aq | egrep "vim|wget|tree|bash-completion|lrzsz"

 由上图可知安装了vim。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2321913.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在本地Windows机器加载大模型并生成内容

本篇演示在本地机器下载和加载大模型并获取AI产生的内容。简单起见,使用的大模型是Qwen2.5-0.5B-Instruct,整个模型的所有文件不到1G。 Qwen2.5-0.5B-Instruct 是阿里巴巴云 QWen 团队基于 Transformer 架构开发的轻量级指令调优语言模型,专…

热门面试题第14天|Leetcode 513找树左下角的值 112 113 路径总和 105 106 从中序与后序遍历序列构造二叉树 (及其扩展形式)以一敌二

找树左下角的值 本题递归偏难,反而迭代简单属于模板题, 两种方法掌握一下 题目链接/文章讲解/视频讲解:https://programmercarl.com/0513.%E6%89%BE%E6%A0%91%E5%B7%A6%E4%B8%8B%E8%A7%92%E7%9A%84%E5%80%BC.html 我们来分析一下题目&#…

【计算机网络】-计算机网络期末复习题复习资料

一、计算机网络体系结构(800字) 1. OSI参考模型 七层结构:物理层→数据链路层→网络层→传输层→会话层→表示层→应用层 各层核心功能: 物理层:比特流传输(如RJ45、光纤接口) 数据链路层&…

批归一化(Batch Normalization)与层归一化(Layer Normalization)的区别与联系

文章目录 一、Batch normalization 理论与应用1. 理论解释2. 数值例子 二、Layer normalization 理论与应用1. 理论解释2. 数值例子 三、Layer Normalization 和 Batch Normalization 的区别四、《Transformers without Normalization》笔记 一、Batch normalization 理论与应用…

12届蓝桥杯—货物摆放

货物摆放 题目描述 小蓝有一个超大的仓库,可以摆放很多货物。 现在,小蓝有 nn 箱货物要摆放在仓库,每箱货物都是规则的正方体。小蓝规定了长、宽、高三个互相垂直的方向,每箱货物的边都必须严格平行于长、宽、高。 小蓝希望所…

c++进阶--哈希表的实现

大家好,今天我们来学习ubordered_set和unordered_map的底层哈希表。 目录 哈希表实现 1. 哈希概念 1.1 直接定址法 1.2 哈希冲突 1.3 负载因⼦ 1.4 将关键字转为整数 1.5 哈希函数 下面我们介绍几种哈希函数:1.5.1 除法散列法/除留余数法 1.…

颠覆传统:SaaS 品牌如何通过 SEO 策略引爆市场!

SaaS 商业模式提供了令人难以置信的可扩展性和盈利能力——但前提是与正确的营销增长策略相结合。 SaaS 品牌知道,托管基于云的应用程序的成本会随着用户量的增加而降低,因此必须专注于订阅者的快速增长,以保持竞争力并降低成本。 许多 CMO…

特殊行车记录仪DAT视频丢失的恢复方法

行车记录仪是一种常见的车载记录仪,和常见的“小巧玲珑”的行车记录仪不同,一些特种车辆使用的记录仪的外观可以用“笨重”来形容。下边我们来看看特种车载行车记录仪删除文件后的恢复方法。 故障存储: 120GB存储设备/文件系统:exFAT /簇大小:128KB 故…

数据库中不存在该字段

mybatisplus 定义的类中某些字段是数据库里面没有的,我们可用tablefield(existfalse)来注解,演示如下:

吾爱出品,文件分类助手,高效管理您的 PC 资源库

在日常使用电脑的过程中,文件杂乱无章常常让人感到困扰。无论是桌面堆积如山的快捷方式,还是硬盘中混乱的音频、视频、文档等资源,都急需一种高效的整理方法。文件分类助手应运而生,它是一款文件管理工具,能够快速、智…

关于瑞芯微开发工具(RKDevTool)刷机下载Boot失败原因的研究

昨天发了文章《网心云OEC/OEC-turbo刷机问题——刷机教程、救砖方法、技术要点及下载boot失败异常解决尝试》,其中有关于刷机各种问题的一些解决方法。 网心云OEC/OEC-turbo刷机问题——刷机教程、救砖方法、技术要点及下载boot失败异常解决尝试-CSDN博客文章浏览阅…

web爬虫笔记:js逆向案例十一 某数cookie(补环境流程)

web爬虫笔记:js逆向案例十一 某数cookie(补环境流程) 一、获取网页数据请求流程 二、目标网址、cookie生成(逐步分析) 1、目标网址:aHR0cHM6Ly9zdWdoLnN6dS5lZHUuY24vSHRtbC9OZXdzL0NvbHVtbnMvNy9JbmRleC5odG1s 2、快速定位入口方法 1、通过脚本监听、hook_cookie等操作可…

Excel多级联动下拉菜单的自动化设置(使用Python中的openpyxl模块)

1 主要目的 在Excel中,经常会遇到需要制作多级联动下拉菜单的情况,要求单元格内填写的内容只能从指定的多个选项中进行选择,并且需要设置多级目录,其中下级目录的选项内容要根据上级目录的填写内容确定,如下图所示&am…

excalidraw画图工具——背景画布有无格子设置

服啦找了大半天,愣是没找到 toggle grid : 切换格子… Excalidraw的背景格子 只要右键,将这个勾取消就好了?

计算机组成原理———I\O系统精讲<1>

本篇文章主要介绍输入输出系统的发展概况 一.输入输出系统的发展概况 1.早期阶段 该阶段的特点是I/O设备与主存交换信息都必须通过CPU 当时的I/O设备有如下几个特点: (1)每个I\O设备都必须配有一套独立的逻辑电路与CPU相连,用来…

ENSP学习day9

ACL访问控制列表实验 ACL(Access Control List,访问控制列表)是一种用于控制用户或系统对资源(如文件、文件夹、网络等)访问权限的机制。通过ACL,系统管理员可以定义哪些用户或系统可以访问特定资源&#x…

【C++动态规划 数学】1039. 多边形三角剖分的最低得分|2130

本文涉及知识点 C动态规划 数学 LeetCode1039. 多边形三角剖分的最低得分 你有一个凸的 n 边形,其每个顶点都有一个整数值。给定一个整数数组 values ,其中 values[i] 是第 i 个顶点的值(即 顺时针顺序 )。 假设将多边形 剖分 …

5.go切片和map

切片的概念 数组和切片相比较切片的长度是不固定的,可以追加元素,在追加时可能会使切片的容量增大,所以可以将切片理解成 "动态数组",但是,它不是数组,而是构建在数组基础上的更高级的数据结构。…

【Linux网络-多路转接select】

代码:https://gitee.com/nanyi-c/linux/tree/master/day50 一、I/O多路转接之select 1.初始select 系统提供select函数来实现多路复用输入/输出模型 select系统调用是用来让我们的程序监视多个文件描述符的状态变化的程序会停在select这里等待,直到被…

cmd命令查看电脑的CPU、内存、存储量

目录 获取计算机硬件的相关信息的命令分别的功能结果展示结果说明获取计算机硬件的相关信息的命令 wmic cpu get name wmic memorychip get capacity wmic diskdrive get model,size,mediaType分别的功能 获取计算机中央处理器(CPU)的名称 获取计算机内存(RAM)芯片的容量…