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

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

项目概述

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。

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

评论 抢沙发

评论前必须登录!