Linux——PXE整体流程

news2025/1/12 1:36:24

1.自己安装一个CentOS 8的服务器

1)手动安装

   虚拟硬件配置:2核CPU,4G内存,100G硬盘

                 2个网卡(一个通外网,一个内部使用)

   软件安装:Server GUI

   磁盘分区:使用逻辑卷,但是/boot使用普通分区

  /boot 1G

  swap 4G

  / 剩余空间

            其他分区,暂时不需要

2)网络配置

   第一个网卡ens160

   使用vmnet8(NAT),vmware关闭自己的DHCP

   使用IP段:172.25.254.0/24(可以通过NAT连外网下载东西)

   第二个网卡ensXXX

   桥接到vmnet2(连接到Windows主机的环回网卡)

   部署PXE使用,内部连接

   使用IP段:192.168.1.0/24(192.168.1.254)

3)软件源

   不使用系统自带的yum源,原有yum源备份到别的目录

   3.1)使用安装光盘的资源

        本地yum(自己安装软件包,给PXE客户机做yum源)

   3.2)使用网络yum源,比如elrepo

        服务器自己从外网下载额外软件

2.提前准备两个客户机(新的服务器,等待PXE装系统)

1)先不开机,不装系统

2)配置:2核,4G,50G盘(nvme硬盘)

         第一个网卡ens160

         连接到vmnet2(和服务器的第二个内部网卡桥接到一起)

         网络连接,可以自己自定义,保证内网的连接都通

         IP网段:192.168.1.0/24(先通过DHCP获得网络配置)

         可以添加第二个网卡比如ensXXX

         比如,也可以桥接到vmnet8(NAT)

         需要先让第一个网卡,生成MAC地址,并记录,后续给DHCP用

3.部署PXE服务器

0)在之前的服务器上,192.168.1.254

1)安装nginx

   软件包:nginx

   配置文件:/etc/nginx/nginx.conf

   可以不做任何修改,直接运行,但也可以添加一些配置

   主要是确定,http的工作目录:/usr/share/nginx/html

  可以在location添加访问控制,只允许内网客户机访问自己的http

   启动启用服务:nginx

   1.1)我的实验里,新建了一个/usr/share/nginx/html/centos84目录

        每个人自己的目录,自定义就好

   1.2)安装好nginx后,需要先把自己的yum的目录

        移动到/usr/share/nginx/html/centos84目录下,方便使用

        自己的本地repo文件,修改好路径

   1.3)nginx的工作目录,就是将来kickstart的内容获取的目录

2)部署DHCP

   软件包:dhcpd

   配置文件:/etc/dhcp/dhcpd.conf

   2.1)全局配置

保证租期别太短,上面例子里有点少……

   2.2)地址池配置

给内网的客户机,提供DHCP

   网段、DNS、广播地址……

   重要的:range

           option routers(可以指定到254也就是服务器自己)

           next-server(一定是服务器自己254,服务器的TFTP)

           filename(要从TFTP获得的内容)

   2.3)特定主机配置

比如,两个客户机,就有两段配置

   对应不同的MAC地址,分配特定IP、特定主机名

   两个客户机:101 -> servera,102 -> serverb

   启动启用DHCP服务:dhcpd

3)安装syslinux软件包,获得pxelinux的相关文件

4)部署TFTP服务

   软件包:tftp-server、xinetd

   4.1)配置文件:/etc/xinetd.d/tftp

这个配置文件,可以从xinetd.d目录,复制其他文件,再修改

   启动启用服务:tftp、xinetd

                 tftp可能看不到启动状态,不是独立服务

   4.2)TFTP工作目录要包含的必要文件

 这些文件,从系统安装镜像的目录里,复制

   还有从syslinux软件包生成目录复制……

   4.3)关于pxelinux.cfg目录和里面的文件

 default文件:

客户机将来PXE启动时候没有读秒的倒计时

使用配置文件中linux这一段的配置

指定ks文件,通过http获得

*上面的内容参照PXE文档就行*

接下来是kickstart脚本和里面额外的shell脚本

4.要在http的目录里放置所有相关文件

  包括:ks.cfg、其他脚本、其他客户机需要的文件(配置文件)

centos84,是服务器的本地yum目录,也是PXE的yum目录

   hosts,要传递给客户机的/etc/hosts

   indexa和indexb两个html,将来两个客户机要启动的web主页

   instsoft.sh,客户机将来个性化安装软件,使用的脚本

   inter.repo,传递给客户机的yum配置文件/etc/yum.repos.d/

   ipcfg.sh,客户机将来静态配置主机和网络信息,使用的脚本

   ks.cfg,kickstart给客户机安装系统,使用的主要脚本

   sshpubkey,服务器自己提前做好的ssh的公钥,将来传给客户机

              用于将来服务器免密SSH登录客户机

   weba和webb两个conf文件,两台客户机分别启用web服务使用的配置文件

   4.1)centos84目录

  4.2)hosts文件

主要是两个客户机的本地DNS解析

 4.3)indexa和indexb

   就是最简单的web主页内容

   4.4)instsoft.sh

用于客户机自己判断,安装软件包

servera安装httpd,serverb安装nginx

   4.5)inter.repo

yum源,通过http指到了服务器

   4.6)ipcfg.sh,分段看

客户机配置yum源

获取hosts文件

设置selinux和防火墙

让客户机,指定服务器,作为时间同步的源

将来客户机和服务器时间是同步的

先临时设定一堆环境变量,为了获取客户机自己的IP地址、主机名等信息

这些信息,变为静态配置

从服务器,获得ssh的公钥,放到客户机指定的目录,指定的文件名

   4.7)sshpubkey

服务器把自己的ssh的公钥复制过去(id_rsa.pub)

这个东西怎么生成

#ssh-keygen命令生成

   4.8)weba.conf

   其实是个httpd的配置文件(apache的配置文件)

   将来复制到客户端,作为httpd服务的配置文件

   主要指定一个主机名,其他暂时不需要修改

   4.9)webb.conf

   其实是一个nginx配置文件

   将来复制到客户机,作为nginx的配置文件

   也是主要指定server_name

   4.10)ks.cfg脚本

安装过程中,使用图形化界面(点鼠标的安装界面)

给客户机指定一个repo(其实可选)

%packages,指定安装不带图形的Server,也可以指定别的软件包

指定键盘,语言(额外有中文)

网卡的配置,指定了客户机ens160网卡,通过DHCP获得参数

url指定了系统安装过程中,使用的介质来源(光盘或者网络传来的光盘信息)

首次启动的代理(欢迎界面和流程),不启用,或者disable

这一段,磁盘分区的配置

指定的磁盘,要和客户机本身硬盘类型一致,都是nvme

清空所有已有分区

新建/boot,普通分区,使用了ext4文件系统,没使用xfs

新建物理卷pv.01

新建卷组server

创建逻辑卷

  swap

  / 使用了ext4

时间时区,删除了--no-ntp,也就是说,将来客户机要通过网络同步时间

root账户的密码

也可以新建更多用户,指定密码

关闭kdump

密码策略……

%post脚本段

比最早时候,简化,所有其他操作,都放到其他的sh脚本里

上面一段,让客户机wget获取ipcfg.sh并执行

中间一段,让客户机wget获取instsoft.sh,但是不执行(因为没法执行)

这里包含的是软件安装命令

下面一段,给客户机导入一个,一次性的任务计划

开机后1分钟延迟,立即执行

执行instsoft.sh脚本

最后确保客户机启用atd服务,才能开机执行任务计划

ks文件末尾,reboot

整个安装过程完成后,首次重启

在这次重启之前,客户机一直是在光盘启动模式里,进行安装

并没有启动属于自己的系统

重启后

客户机才启动了自己新安装的系统

5.安装后验证

1)服务器通过ssh连接客户机

比如#ssh servera.example.com,不需要密码就可以登录

2)查看两个客户机,各自的基本配置

   2.1)IP地址,以及是否静态配置(网卡配置文件,和nmcli的连接)

        主机名和主机名的环境变量

   2.3)客户机是否有正确的yum配置

        repo文件,yum list是否能列出内容

3)验证客户机自动化部署的两个web服务

   3.1)servera

        httpd服务器启动状态,是否有配置文件,主页文件在不在

        serverb

        nginx服务启动状态,是否有配置文件,主页文件在不在

   3.2)访问一下这两个服务

        在服务器,使用curl命令就行

        比如:#curl servera.example.com

              #curl serverb.example.com

        也可以细化一下访问验证

        分两步验证

          先验证web服务本身是否能通

          在验证主页是否能访问

或者浏览器访问

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

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

相关文章

实践分享:如何用小程序里的小组件做应用开发?

随着移动互联网的快速发展,小程序等轻量级应用平台日益成为用户获取信息和服务的重要渠道。而小组件也在其中扮演了至关重要的角色,不仅能够提升用户的交互体验,还能帮助开发者高效地构建功能丰富、界面美观的小程序。 本文中,我们…

【Uniapp】uniapp微信小程序定义图片地址全局变量

错误写法: main.js Vue.prototype.$imgUrl 图片地址这么写之后 就发现压根不起作用;获取到的是undefined 正确写法: 返回函数,后面可以拼上OSS图片完整路径 Vue.prototype.$imgUrl (url) > {return ("https://地址…

jmeter性能优化之mysql配置

一、连接数据库和grafana 准备:连接好数据库和启动grafana并导入mysql模板 大批量注册、登录、下单等,还有过节像618,双11和数据库交互非常庞大,都会存在数据库的某一张表里面,当用户在登录或者查询某一个界面时,量少的话体现不出来,量很大的时候一定会有卡的现象, 性…

SpringBoot整合RabbitMQ实现消息延迟队列

环境依赖 SpringBoot 3.1.0 JDK 17 前期准备 安装MQ: liunxdockerrabbitmq安装延迟队列插件 实例 实现延迟队列的一种方式是在 RabbitMQ 中使用消息延迟插件,这个插件可以让你在消息发送时设置一个延迟时间,超过这个时间后消息才会被消费者接收到…

期刊影响因子、分区如何查询

查询期刊影响因子、分区等信息就不得不说到的数据库JCI(Journal Citation Indicator)。 JCR 是一个综合性、多学科的期刊分析与评价报告,它客观地统计Web of Science收录期刊所刊载论文的数量、论文参考文献的数量、论文的被引用次数等原始数据,再应用文…

数据库(29)——子查询

概念 SQL语句中嵌套SELECT语句,称为嵌套查询,又称子查询。 SELECT * FROM t1 WHERE column1 (SELECT column1 FROM t2); 子查询外部语句可以是INSERT/UPDATE/DELETE/SELECT的任何一个。 标量子查询 子查询返回的结果是单个值(数字&#xff…

基于xml的Spring应用(理解spring注入)

目录 问题: 传统Javaweb开发的困惑? 问题: IOC、DI和AOP的思想提出 问题: Spring框架的诞生 1. BeanFactory快速入门 2. ApplicationContext快速入门 3. BeanFactory和ApplicationContext的关系 基于xml的Spring应用 1. SpringBean的…

c# 开发的wpf程序闪退,无法用try catch捕获异常

之前开发的一个程序是c#wpf开发,基于.net framework 4.6.1的,一切都是正常的,但是在我重新装了win11后在程序logo出现后直接闪退,报错 返回值为 -1073740791 (0xc0000409),而且定位到代码时发现是, publi…

AI助教时代:通义千问,让学习效率翻倍?

全文预计1100字左右,预计阅读需要5分钟。 关注AI的朋友知道,在今年5月份以及6月份的开端,AI行业可谓是风生水起,给了我们太多的惊喜和震撼!国内外各家公司纷纷拿出自己憋了一年的产品一决雌雄。 国内有文心一言、通义千…

LeetCode 算法:最大子数组和c++

原题链接🔗:最大子数组和 难度:中等⭐️⭐️ 题目 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组是数组中的一个连续部分。 …

28-LINUX--I/O复用-epoll

一.epoll概述 epoll 是 Linux 特有的 I/O 复用函数。它在实现和使用上与 select、poll 有很大差异。首 先,epoll 使用一组函数来完成任务,而不是单个函数。其次,epoll 把用户关心的文件描述 符上的事件放在内核里的一个事件表中。从而无需像…

计算机组成原理之指令格式

1、指令的定义 零地址指令: 1、不需要操作数,如空操作、停机、关中断等指令。 2、堆栈计算机,两个操作数隐藏在栈顶和此栈顶,取两个操作数,并运算的结果后重新压回栈顶。 一地址指令: 二、三地址指令 四…

C# WPF入门学习主线篇(十六)—— Grid布局容器

C# WPF入门学习主线篇(十六)—— Grid布局容器 欢迎来到C# WPF入门学习系列的第十六篇。在前几篇文章中,我们已经探讨了 Canvas、StackPanel、WrapPanel 和 DockPanel 布局容器及其使用方法。本篇博客将介绍另一种功能强大且灵活的布局容器—…

Spring AI 第二讲 之 Chat Model API 第四节Amazon Bedrock

Amazon Bedrock是一项托管服务,通过统一的应用程序接口提供来自不同人工智能提供商的基础模型。 Spring AI 通过实现 Spring 接口 ChatModel、StreamingChatModel 和 EmbeddingModel,支持亚马逊 Bedrock 提供的所有聊天和嵌入式 AI 模型。 此外&#xf…

【Python报错】已解决TypeError: ufunc ‘isnan’ not supported for the input types

成功解决“TypeError: ufunc ‘isnan’ not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ‘‘safe’’”错误的全面指南 在使用NumPy等科学计算库时,我们经常会遇到各种各样…

pytorch-数据增强

目录 1. Flip翻转2. Rotate旋转3. scale缩放4. crop裁剪5. 总结6. 完整代码 1. Flip翻转 上图中做了随机水平翻转和随机垂直翻转&#xff0c;翻转完成后转化成tensor 2. Rotate旋转 上图中作了2次旋转第一次旋转角度在-15<0<15范围内&#xff0c;随机出一个角度&#xf…

创建google cloud storage notification 的权限问题

问题 根据google 的文档&#xff1a; https://cloud.google.com/storage/docs/reporting-changes#command-line 明确表示&#xff0c; 要创建storage notificaiton &#xff0c; 创建者(or service account) 只需要bucket 和 pubsub admin roles 但是实际上我在公司尝试为1个…

【AI 高效问答系统】机器阅读理解实战内容

⭐️我叫忆_恒心&#xff0c;一名喜欢书写博客的研究生&#x1f468;‍&#x1f393;。 如果觉得本文能帮到您&#xff0c;麻烦点个赞&#x1f44d;呗&#xff01; 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧&#xff0c;喜欢的小伙伴给个三连支…

【spark】spark列转行操作(json格式)

前言&#xff1a;一般我们列转行都是使用concat_ws函数或者concat函数&#xff0c;但是concat一般都是用于字符串的拼接&#xff0c;后续处理数据时并不方便。 需求&#xff1a;将两列数据按照设备id进行分组&#xff0c;每个设备有多个时间点位和对应值&#xff0c;将其一一对…

企业网页制作

随着互联网的普及&#xff0c;企业网站已成为企业展示自己形象、吸引潜在客户、开拓新市场的重要方式。而企业网页制作则是构建企业网站的基础工作&#xff0c;它的质量和效率对于企业网站的成败至关重要。 首先&#xff0c;企业网页制作需要根据企业的特点和需求进行规划。在网…