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

1.项目说明

该项目共分为2个子项目,由iventoy和定制安装两部分组成

2.项目需求

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

3.常见系统批量安装方式

(1)使用商业化软件

使用商业化软件要额外成本开支

(2)使用开源软件

Linux 操作系统基于pxe技术结合kickstart实现定制化需求。

Linux 操作系统基于cobbler结合自定义ks文件实现定制化需求。

windows 系统安装 iventoy 结合自定义配置文件实现定制化需求。

U盘装系统,制作u盘启动盘引导安装。

服务器通过ipmi远程ISO安装。

刻录光盘,外接光驱安装系统。

(3)结论

综合比较,选择iventoy,将我们自己笔记本打造成pxe服务器,操作相对简单,官方已经检测通过100多种操作系统。

iventoy介绍

  • 主页:iVentoy

  • iVentoy 可以看成是一个增强版的 PXE 服务器,使用iVentoy 你可以通过网络同时给多台机器启动、安装操作系统。

  • iVentoy 使用极其简单,无需复杂的配置,直接把 ISO 文件放到指定位置,客户机在启动时根据菜单选择要启动的ISO文件即可。

  • iVentoy 同时支持 x86 Legacy BIOS、IA32 UEFI、x86_64 UEFI 和 ARM64 UEFI 模式。

  • iVentoy 支持 110 多种常见类型的操作系统

  • iVentoy 在运行时会使用系统的一些端口号,这些端口需要在防火墙中放开,否则 iVentoy 会无法正常工作,具体如下:

PEX介绍

PXE,预启动执行环境(Preboot eXecution Environment,PXE,也被称为预执行环境)提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。

PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。

4.项目环境

项目拓扑结构

  • 安装win10/11 笔记本一台、服务器若干、交换机一台

软硬件环境清单

  • 注意:为了学习方便,文档使用VMware 17 workstation 里面创建新的虚拟机代替台式机和服务器来验证。

    |-------------|---------------|-----------------------------------------------------------------------------|-------------------------------|
    | 主机名 | IP地址 | 硬件 | 软件 |
    | pxe-control | windows本机分配IP | Windows本机 | iventoy-1.0.20-win64-free.zip |
    | node1 | | cpu:1颗2核 内 存:4GB HDD:20GB 网 络:NAT | VmWare17 Centos7.9 |
    | node2 | | |-----------------------------------| | cpu:1颗2核 内 存:4GB HDD:20GB 网 络:NAT | | VmWare17 OpenEuler22.03 SP4 |

    5.任务清单

    系统平台部署

  • 安装VmWare17

  • 虚拟出2台计算机

  • 前置处理

  • 解压缩部署

  • 配置网卡信息

  • 配置vmware

  • 安装centos7.9

  • 安装openeuler

6.实施步骤

安装下载

  • 注意:下载解压缩iventoy-1.0.20-win64-free.zip,==解压位置的全路径中不能有中文或空格==, 软件解压后的目录结构如下:

各个目录作用如下:

|------|---------------------------------------|
| 目录 | 说明 |
| data | 存放 License、配置文件等 |
| doc | 存放软件相关说明文档 |
| iso | 放ISO文件的地方,可以在里面创建子目录 |
| lib | 存放 iVentoy 运行所需的 LIB 文件,==用户不要动这个目录== |
| log | 存放 iVentoy 运行日志 |
| user | 存放用户文件、第三方软件包、自动安装脚本等文件 |

配置iventoy

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

  • 可以在此目录下任意创建子目录来归类存放各种不同类型系统的ISO文件。

  • 注意:

    • ==目录名和ISO文件名中不能有中文或空格==

    • 也可以管理员身份打开cmd,使用命令创建iso快捷方式(软连接),即不需要将ISO文件从别的位置拷贝到这个 iso 目录下 ( Linux 系统中你可以使用 ln -s 命令)

    • 需要关闭防火墙

    • Windows 系统中直接双击运行 exe 文件即可

    • Linux 系统下在终端中执行 sudo bash iventoy.sh start 命令。

管理员身份启动iventoy,如图:

  • 注意:请使用新版本的 Google Chrome 或 FireFox 浏览器访问 iVentoy 界面,其他浏览器未做测试,不保证没有问题。

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

启动 PXE 服务

  • 在 iVentoy 主界面上选择本机 IP 地址,根据之前的分析设置好 IP 地址池,然后点击绿色的开始按钮即可,然后出现红色方块服务运行中

系统安装

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

  • 新建Centos7.9虚拟机

  • 新建openeluer虚拟机

PEX自动识别

7.iVentoy 定制安装

作用
  • 通过 iVentoy 你无需重新制作ISO文件,只需要简单地为一个ISO文件指定一个或者多个自动安装脚本来实现无人值守、自动安装部署系统的方案。

  • 可以使用 Windows 中的 unattend XML、Redhat/CentOS系列中的 Kickstart 脚本、SUSE系列中的 autoYast XML、Debian系列中的preseed脚本等等。

  • 下面的示例模版脚本位于安装包内的 user/scripts/example 目录下,如图:

定制CentOS7
  • 复制 kickstart7.cfg 为 CentOS7.cfg 并修改

添加到IVentoy里面

再新建虚拟机

安装完毕后,登录系统检查

查看它的用户和密码

登录进去

分区检查

软件包检查,检查防火墙和SELinux

8.问题总结

1.需要关闭Windows的所有防火墙及杀毒等安全软件

  1. iVentoy_64.exe执行文件需要以管理员身份打开

3.iVentoy exe文件双击运行若无反应,需要下载所有运行库: VS2019,下载链接:https://learn.microsoft.com/zh-cn/cpp/windows/latest-supported-vc-redist?view=msvc-170

4.本项目是在虚拟机中模拟的,若安装某些系统时卡死,一般都是虚拟机分配的内存不足造成的,建议分配4096m内存

5.本项目实验需要使用vmnet8网卡,若无法使用则无法完成,需要在设备管理器中检查vmnet8网卡驱动是否安装,若有问题则在虚拟网络编辑器中进行还原默认值设置

本项目在这里就结束了,项目途中虽然有一些小问题的出现,但是都解决了,希望这个博客可以帮助大家理解。

相关推荐
AI享网无代码创作7 分钟前
WP Mail 邮件发送:WordPress Mail SMTP设置
运维·服务器·网络
就改了8 分钟前
Java进阶——Lombok的使用
java·服务器·前端
陈阳羽1 小时前
云服务器Ubuntu安装宝塔面板MongoDB修改配置文件本地连接
服务器·mongodb·ubuntu
无名之逆2 小时前
hyperlane:Rust HTTP 服务器开发的不二之选
服务器·开发语言·前端·后端·安全·http·rust
苏十八2 小时前
计算机网络相关知识小结
服务器·网络·计算机网络
laugh123212 小时前
GitLab 服务器宕机时的项目代码恢复方法
服务器·git·gitlab·数据恢复
愚润求学3 小时前
Linux基础指令(一)
linux·服务器·语法
struggle20253 小时前
AWS Bedrock 多代理蓝图存储库使用 CDK、Streamlit 和 LangFuse 运行 AWS Bedrock 多代理 AI 协作的蓝图
运维·人工智能·自动化·云计算·aws
IEVEl3 小时前
CentOS 7 安装 EMQX (MQTT)
linux·运维·centos
vortex54 小时前
深入理解 Linux 文件权限:从 ACL 到扩展属性,解剖底层技术细节与命令应用
linux·运维·服务器