云计算百科
云计算领域专业知识百科平台

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

目录

1.项目背景

1.1.需求

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

1.2.1.使用商业化软件

1.2.2.使用开源软件

1.2.3.结论

1.3.iventoy介绍

1.4.PEX介绍

2.项目环境

2.1.项目拓扑结构

2.2.软硬件环境清单

3.任务清单 

3.1.系统平台部署

3.2.Windows下安装iventoy

3.3.配置iventoy

3.4.测试安装

3.5.自动化脚本安装

4.实施步骤

4.1.安装下载

4.2.配置iventoy

4.2.1.拷贝ISO文件

4.2.2.运行软件

4.2.3.启动PXE服务

4.3.系统测试

4.4.iVentoy定制安装

4.4.1.作用

4.4.2.定制CentOS7

4.4.3.测试效果

5.问题总结 


1.项目背景

1.1.需求

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

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

1.2.1.使用商业化软件

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

1.2.2.使用开源软件

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

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

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

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

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

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

1.2.3.结论

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

1.3.iventoy介绍

  • 主页:iVentoy

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

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

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

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

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

端口号协议说明
67/68 UDP DHCP Server端口号
69 UDP TFTP Server端囗号
26000 TCP iVentoy 管理界面 HTTP Server端口号
16000 TCP iVentoy PXE 服务 HTTP Server端囗号
10809 TCP NBD Server端口号

1.4.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)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统


2.项目环境

2.1.项目拓扑结构

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

2.2.软硬件环境清单

  • 注意:为了学习方便,使用VMware 17 workstation 里面创建新的虚拟机代替台式机和服务器来验证
主机名 IP地址 硬件 软件
pxe-control windows本机分配IP Windows本机 iventoy-1.0.20-win64-free.zip
node1 192.168.133.162

cpu:1颗2核

内 存:4GB

HDD:20GB

网 络:NAT

VmWare17 Centos7.9
node2 192.168.133.163

cpu:1颗2核

内 存:4GB

HDD:20GB

网 络:NAT

VmWare17 OpenEuler22.03 SP4

3.任务清单 

3.1.系统平台部署

  • 安装VmWare17

  • 虚拟出2台计算机

3.2.Windows下安装iventoy

  • 前置处理

  • 解压缩部署

3.3.配置iventoy

  • 配置网卡信息

  • 配置vmware

3.4.测试安装

  • 安装centos7.9

  • 安装openeuler

3.5.自动化脚本安装


4.实施步骤

4.1.安装下载

  • 下载地址:Download . Ventoy

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

  • 各个目录作用如下:

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

4.2.配置iventoy

4.2.1.拷贝ISO文件

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

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

  • 注意:目录名和ISO文件名中不能有中文或空格

4.2.2.运行软件

  • 注意:windows 注意需要关闭防火墙或放行相关端口。本文采用关闭所有防火墙,如图:

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

  • iVentoy 界面是基于 WEB 的,因此软件运行起来以后,需要打开浏览器访问 http://127.0.0.1:26000 来打开 iVentoy 的软件界面。

  • Windows 系统中打开软件之后,会自动打开浏览器,如果没有自动打开,则需要手动点击 打开链接 按钮,如图:

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

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


  • 然后点击虚拟网络编辑器,在NAT模式下关闭DHCP自动分配地址,再点击NAT设置,检查网关与子网IP如下图:

4.2.3.启动PXE服务

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

  • 启动 iventoy 后如图示:

4.3.系统测试

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

  • 新建Centos7.9虚拟机

注意:新CD/DVD处不能设置ISO镜像文件

用不到的硬件可以移除

  • PEX自动识别:

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

  • 注意:

    • 安装RHEL9/OpenEuler系统时需要上4G内存,否则无法加载设备(vmware中pxe服务器安装报错dracut:FATAL: Failed to find a root file system in /tmp/curl_fetch_url1/install.img_dracut : fatal :failed to find a root filesystem-CSDN博客)

    • 某些系统自定义分区时需要增加biosboot分区或/boot/efi分区,大小100m即可

4.4.iVentoy定制安装

4.4.1.作用

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

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

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

发行版脚本格式示例脚本说明
Windows Unattend XML unattended.xml Windows系列
Deepin/UOS INI deepin.ini Deepin/UOS 系统
RHEL8/CentOS8 Kickstart script kickstart8.cfg 同时也支持基于这几个派生出来的发行版。比如 OpenAnolis, RockyLinux 等。
RHEL7/CentOS7/Fedora Kickstart script kickstart7.cfg 同时也支持基于这几个派生出来的发行版。比如 Oracle Linux, EuroLinux 等。
RHEL6/CentOS6 Kickstart script kickstart6.cfg 同时也支持基于这几个派生出来的发行版。
openEuler Kickstart script openeuler.cfg openEuler 版本。
Debian Preseed script preseed.cfg Debian 系列的发行版。
Ubuntu Server (< 20.x) Preseed script preseed.cfg 早期 Ubuntu Server 版本
Ubuntu Server (20.x+) cloud-init cloud-init-user-data Ubuntu Server 20.x 以后的版本
SUSE autoYast XML autoYast.xml SLES 和 openSUSE
  • 注意,这里的示例脚本仅供参考,需要根据实际需要修改,尤其是里面磁盘分区设置的部分。否则会造成磁盘被误格式化、数据丢失等问题。

4.4.2.定制CentOS7

  • 复制 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

  • 关闭PEX服务

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

4.4.3.测试效果

  • 启动服务

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

  • 切换到自定义脚本,然后按 回车键  

  •  由于网络安装加载较慢,需要等待一段时间,安装按预先设定脚本执行

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

# 分区检查

[root@localhost ~]# lsblk NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT sda      8:0    0   20G  0 disk  ├─sda1   8:1    0    1G  0 part /boot ├─sda2   8:2    0    1G  0 part [SWAP] └─sda3   8:3    0   18G  0 part / sr0     11:0    1 1024M  0 rom

# 软件包检查 [root@localhost ~]# rpm -aq | egrep "vim|wget|tree|bash-completion|lrzsz" vim-filesystem-7.4.629-7.el7.x86_64 bash-completion-2.1-8.el7.noarch wget-1.14-18.el7_6.1.x86_64 vim-enhanced-7.4.629-7.el7.x86_64 vim-minimal-7.4.629-7.el7.x86_64 vim-common-7.4.629-7.el7.x86_64 tree-1.6.0-10.el7.x86_64 lrzsz-0.12.20-36.el7.x86_643

  • 检查防火墙和SELinux。

[root@localhost ~]# firewall-cmd –state not running [root@localhost ~]# getenforce  Disabled 

5.问题总结 

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

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

  • iVentoy exe文件双击运行若无反应,需要下载所有运行库: VS2019,下载链接:最新受支持的 Visual C++ 可再发行程序包下载 | Microsoft Learn

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

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

  • 若网络引导到系统安装界面花屏(一般为Windows系列),需要更改iventoy的分辨率,由默认的1024*768修改为较高分辨率

项目结束!

赞(0)
未经允许不得转载:网硕互联帮助中心 » 基于网启PXE服务器的批量定制系统平台
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!