pxe环境下的无人值守自动安装

news2024/9/22 3:53:24

0. 环境部署前的准备

1.rhel7的主机

2.开启主机图形

3.配置网络可用

4.关闭vmware dhcp功能

5.关闭防火墙以及selinux

getenforce要为disable状态

grubby --update-kernel ALL --args selinux=0
systemctl disable --now firewalld

1.kickstart自动安装脚本制作

   我们想要让其他主机部署安装源则需要anaconda-ks.cfg文件此文件记录对操作系统的配置,而system-config-kickstart就是生成这个文件的工具

  生成好安装源后,通过httpd服务将安装源分享出去

1.1软件安装

[root@localhost ~] cat /root/anaconda-ks.cfg#此文件是在系统安装好后自动生成的,这个文件记录了系统在安装过程中的所有设定

[root@localhost ~] dnf install system-config-kickstart#安装图形化生成kickstart自动化安装脚本工具

[root@localhost ~] system-config-kickstart#启动图形制作工具

1.2图形界面选择及配置

通过网络分享安装源

安装后执行的脚本

1.3配置网络分享

[root@rhel ~] yum install httpd -y#下载httpd
[root@rhel ~] systemctl enable --now httpd#开启Apache

此时我们需要将挂载的软件仓库目录软连接至发布目录/var/www/html下

[root@rhel ~] ln -s /rhel7 /var/www/html/

此时访问主机ip加路径就可以看到内容,如果没有,需要检查挂载以及软件仓库

1.4配置要共享的安装源文件

需要加软件安装包

@base:软件组

httpd:软件包的名称

写完后检查是否有错误

[root@rhel ~] ksvalidator ks.cfg 

因为是共享给其他的主机,所以我们需要将写好的安装源文件共享出去

[root@rhel ~] cp /root/ks.cfg /var/www/html/

此时安装一个新的虚拟机在开启选择界面按tab在quit后面添加安装源的路径

ks=http://172.25.254.100/ks.cfg

但此时并不能完成安装,因为没有人给这台新的主机分配ip,于是需要在服务器部署dhcp服务

2.搭建dhcp服务并测试

在我们的生产环境中不可能去使用VMware分配ip,于是需要在这套环境中搭建dhcp

2.1安装dhcp服务

安装dhcp的作用是为其他的服务器提供分配ip的功能,前提是其他服务器网卡必须设定dhcp模式

[root@rhel ~] yum install dhcp -y

2.1.1用命令生成配置文件并编辑

此时找到dhcp的主配置文件,根据提示将配置文件中的提示复制到配置文件中

\cp -f /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
#"\":转义符,执行真实的cp命令

此时进入它的配置文件,配置文件中37行以后的内容删除,注释掉27,28行,并更改以下信息

做完配置后启动dhcp服务

systemctl enable --now dhcpd
[root@rhel ~]cat /var/lib/dhcpd/dhcpd.leases
#此处记录了服务器将哪个ip地址给了谁

此时就可以完成自动安装了,但此时的主机是由光盘引导的,但是在企业中,不可能在每一台主机上去安装光盘 。

2.2现在要解决的问题(pxe)

        机房中要部署200台主机,现在一台已经有系统了,我们在这台主机中做了很多的设定,然后让它把资源共享出去,让其他的主机读取资源。

        这时的主机是没有系统的,但它是通过网卡启动的(在启动虚拟机时让它从网卡启动),选择网卡启动后,它会向有系统的主机索要IP,此时这个主机的dhcp会给索要ip的主机传递数据包,数据包中有IP,但除了IP我们还可以传递其他的东西,可以给他一个文件路径,让它用得到的ip去访问这个路径,然后我们就可以在这个文件中做设置了,让它下一步读取哪些资源,这一整个流程称为pxe,而它读取的文件叫做pxelinux.0(这个文件的作用就是指引下一步做哪些文件的读取)

       下一步要读取什么呢?我们需要找到开机后的选择界面,找到这个界面就可以搞定安装环境了,这个界面在我们的安装盘里

3.搭建pxe网络安装环境实现服务器自动部署

3.1找到安装盘

读取内核然后读取初始化镜像,启动了我们的环境

isolinux.cfg就是界面文件,我们需要做的就是在读取完内核后,将它本来要读取的光盘改为网络的

第一步,我们需要把isolinux通过网络共享出去;第二步,编辑isolinux.cfg里面的东西

3.2安装环境中所需要的基本配置

yum install syslinux.x86_64 -y

下载好这个软件后,查找这个软件中含有pxelinux.0的文件

[root@rhel ~] rpm -ql syslinux | less 

这个就是dhcp向外发送数据包时携带的那个信息文件,这个信息文件指引后面要读取什么东西

 /usr/share/syslinux/pxelinux.0

查看帮助文档

[root@rhel ~] vim /usr/share/doc/syslinux-4.05/pxelinux.txt 

pexlinux.0的功能是,让要装系统的主机去访问/tftpboot/pexlinux.cfg/底下的default文件,于是我们需要在这个文件里写界面的标题以及网址等

此时我们需要安装tftp,用他共享pxelinux.0数据文件的网络服务

yum  install tftp-server.x86_64 -y

启动tftp服务

systemctl enable --now tftp

我们要将所有的东西放到它的数据目录下,我们要放在界面中看到的一切资源,将光驱的东西全部拷贝进来

[root@rhel ~] cp /rhel7/isolinux/* /var/lib/tftpboot/
[root@rhel ~] cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

由帮助文档可知,它需要我们在tftpboot下建立一个pxelinux.cfg,这里面要包含default文件,这个文件也是pxelinux.0让客户最终读取的文件

[root@rhel tftpboot] cp isolinux.cfg pxelinux.cfg/default 
#将包含界面的文件拷贝到default中

整个环境配置好后,我们需要更改DHCP的配置文件/etc/dhcp/dhcpd.conf

此时进入[root@rhel pxelinux.cfg]# cat /var/lib/tftpboot/pxelinux.cfg/default

就可以看到要加载的资源,以及下载什么东西

重启服务服务

systemctl restart dhcpd

可以进入default改默认选择哪条(menu default)

做完以上操作后,就将启动改为网卡启动,开始自动化安装,安装好后会一直循环则需要在一次循环结束后,关机进入开机启动项,将网卡启动改为硬盘启动,此时pxe环境下的无人值守自动化安装就完成了

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

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

相关文章

SQL注入之webshell上传

首先webshell上传就是利用MySQL的文件读写注入而实现,要想上传webshell就得了解文件读写注入的原理。文件读写注入就是利用文件的读写权限进行注入,它可以写一句话木马,也可以读取文件系统的敏感信息。 文件读写注入的条件: 1.高版本的MYSQ…

Axure导入ElementUI元件库——提升原型设计效率与质量

在快速迭代的互联网产品开发过程中,高质量的原型设计是确保项目顺利进行的关键一步。Axure RP,作为一款强大的原型设计工具,以其丰富的交互功能和易用的界面设计,深受设计师和开发者的喜爱。而ElementUI,作为一套为开发…

Ubuntu配置carla docker环境

前言: 本文只在以下设备成功运行, 其他设备不保证能成功, 可以参考在自己设备进行配置 环境 ubuntu 20.04carla 0.9.15gpu 3060(notebook) 安装显卡驱动&nvidia-container-toolkit 显卡驱动 安装完成系统后直接在’软件和更新->附加驱动’直接选择470(proprietary…

工程化实践:工程配置化设计

文内项目 Github:XIAOJUSURVEY 配置化是很灵活且很常见的使用,那XIAOJUSURVEY里有哪些地方应用到了呢? 基础模板​ 问卷模板​ 在创建问卷时,我们提供了多种问卷类型选择,例如普通问卷、投票、报名、NPS等。 为了实…

安卓碎片Fragment

文章目录 Fragment的简单用法动态添加Fragment在Fragment中实现返回栈碎片与活动之间的通信 Fragment是一种可以嵌入在Activity当中的UI片段,它能让程序更加合理和充分地利用大屏幕的空间。 Fragment的简单用法 先建一个空的项目,然后创建两个fragment文…

单片机振荡电路晶振不起振原因分析与解决方法

晶发电子专注17年晶振生产,晶振产品包括石英晶体谐振器、振荡器、贴片晶振、32.768Khz时钟晶振、有源晶振、无源晶振等,产品性能稳定,品质过硬,价格好,交期快.国产晶振品牌您值得信赖的晶振供应商。 晶振在单片机系统中扮演着至关重要的角色,它为单片机提…

大模型分不清 9.9 与 9.11 谁大,那 Embedding 模型呢?

这是我今天在维也纳举行的 ICML 会议上被问到的问题。 在茶歇期间,一位 Jina 用户向我提出了一个源自 LLM 社区最近讨论的问题。他问我们 Jina Embeddings 能不能判断 9.11 比 9.9 更小,很多大模型在这个小问题上翻了车。 我说:“老实说&am…

Flink 实时数仓(七)【DWS 层搭建(一)流量域汇总表创建】

前言 今天开始 DWS 层的搭建,不知不觉又是周一,都忘了昨天是周末,近两年对我来说,周六日晚上八九点能打一小会篮球就算一周的休息了。不得不说自己真的是天生打工体质,每天不管多累,晚上十二点睡&#xff0…

SpringBoot自动配置和执行过程

Spring的执行流程 1. 加载容器(加载配置文件) 2. 根据配置完成Bean的初始化(扫描配置范围内的五大类注解) 3. 将被五大类注解修饰的类注册到Spring容器中 (将对象交给Spring IoC容器管理) 4.注入Bean对象(Autowired、R…

Linux - - - Linux 添加环境变量

1.添加环境变量 编辑环境变量配置文件。 vim /etc/profile在最后面新增一行,导出 PATH 变量并在之前的 PATH 变量后面添加冒号,然后添加上你的可执行文件的目录。 export PATH$PATH:/usr/local/aspnetcore/aspnetcore-runtime-8.0.7-linux-x64/2.加载…

GD32 SPI 通信协议

1.0 SPI 简介 SPI是一种串行通信接口,相对于IIC而言SPI需要的信号线的个数多一点,时钟的信号是主机产生的。 MOSI:主机发送,从机接收 MISO:主机接收,从机发送 CS:表示的是片选信号 都是单向…

在线Banner设计工具大比拼:谁更胜一筹

在数字营销的时代,一个吸引眼球的 Banner 广告是吸引潜在客户、提高品牌知名度的关键。为了帮助营销人员和设计师快速创建专业的 Banner 广告,市面上出现了多种易于使用的 Banner 设计工具。本文将介绍几个受欢迎的 Banner 设计工具,包括即时…

路径规划——A*算法

路径规划——A*算法 算法原理 为了解决Dijkstra算法效率低的问题,A Star 算法作为一种启发式算法被提出。该算法在广度优先的基础上加入了一个估价函数。如BFS和常规方法如Dijsktra算法结合在一起的算法,有点不同的是,类似BFS的启发式经常给…

RGB红绿灯——Arduino

光的三原色 牛顿发现光的色散奥秘之后,进一步计算发现:七种色光中只有红、绿、蓝三种色光无法被分解,而其他四种颜色的光均可由这三种色光以不同比例相合而成。于是红、绿、蓝被称为“三原色光”或“光的三原色”。后经证实:红、绿…

提升C++开发效率的利器:深入解析Clang Power Tools

目录 一、引言 二、Clang Power Tools 简介 什么是 Clang Power Tools? 背景与发展历史 与 Clang 编译器的关系 主要开发团队和社区支持 系统要求 安装步骤 基本配置和使用 三、主要功能 代码格式化(Clang-Format) 代码质量提升 …

springboot+Loki+Loki4j+Grafana搭建轻量级日志系统

文章目录 前言一、日志组件介绍1.1 Loki组件1.2 Loki4j组件1.3 Grafana 二、组件下载安装运行Loki下载安装运行Grafana下载安装运行 三、创建springboot项目总结 前言 日志在任何一个web应用中都是不可忽视的存在,它已经成为大部分系统的标准组成部分。搭建日志可视…

【大模型】Unsloth安装及使用教程

Unsloth是一个开源的大模型训练加速项目,使用OpenAI的Triton对模型的计算过程进行重写,大幅提升模型的训练速度,降低训练中的显存占用。Unsloth能够保证重写后的模型计算的一致性,实现中不存在近似计算,模型训练的精度…

【Material-UI】Button 组件中的基本按钮详解

文章目录 一、基本按钮变体1. 文本按钮(Text Button)2. 实心按钮(Contained Button)3. 轮廓按钮(Outlined Button) 二、应用场景与注意事项1. 使用场景2. 注意事项 三、总结 Material-UI 的 Button 组件是前…

ShardingProxy使用自定义策略,数据迁移方案

文章目录 ShardingProxy功能扩展分库分表数据迁移方案 ShardingProxy功能扩展 我们在使用ShardingJDBC时,会进行自定义分布式主键生成策略、自定义分片策略 如果我们想要我们自定义的这些策略在ShardingProxy中也能使用,应该如何操作嘞? 我…

使用F1C200S从零制作掌机之I2C传感器

访问I2C设备(比如eeprom),我知道的有三总方法: (一)i2c-dev操作I2C设备:不用添加设备驱动,用户直接在应用层完成对具体I2C 设备的驱动工作。 (二)sysfs操作…