Linux——PXE整体流程

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服务本身是否能通

          在验证主页是否能访问

或者浏览器访问

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Prometheus+Altermanager实现钉钉告警

PrometheusAltermanager实现钉钉告警 Prometheus和Altermanager的安装这里就不赘述了,我之前的文章有写到 不记得的小伙伴可以去看看Prometheus和Altermanager的安装使用 直接开始上操作 下载钉钉并打开,先创建一个接收告警信息的钉钉群 添加一个自定…

信息系统项目管理师0144:裁剪考虑因素(9项目范围管理—9.2项目范围管理过程—9.2.2裁剪考虑因素)

点击查看专栏目录 文章目录 9.2.2 裁剪考虑因素 9.2.2 裁剪考虑因素 因为每个项目都是独特的,所以项目经理可能根据需要裁剪项目范围管理过程。裁剪时应考虑的因素包括: 知识和需求管理:项目经理应建立哪些指南?为了在未来项目中…

【外汇天眼】胜率提升秘籍:洞悉外汇市场五大参与者的角色与功能

外汇市场是全球最活跃、流动性最高的金融交易市场,每日交易量在6万亿到11万亿美元之间。它的日交易量是全球股票市场的27倍,全球期货市场的12倍,全球债券市场的7倍,超过了全球所有金融产品日交易量的总和。随着全球金融一体化的进…

zeppelin 未授权任意命令执行漏洞复现

一、命令执行复现 访问http://ip:8080,打开zeppelin页面,(zeppelin默认监听端口在8080) 点击Notebook->create new note创建新笔记 在创建笔记的时候选择Default Interpreter为sh,即可执行sh命令 如下图&#x…

以hive metastore报错举例,远程调试hadoop服务

项目场景: CDH集群CM切换hive元数据库报错: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at…

23中设计模式之一— — — —命令模式的详细介绍

命令模式 Command Pattern讲解 概念描述模式结构主要角色模式的UIM类图模式优点模式缺点应用场景实例演示类图代码演示运行结果 概念 命令模式(别名:动作,事务) 命令模式是一种行为设计模式,将一个请求封装为一个对象…

大厂真实面试题(二)

小红书大数据面试SQL-用户商品购买收藏行为特征加工 1.题目 已知有 购买记录表t_order,包含自增id:id,用户ID:user_id,商品ID:goods_id,订单时间:order_time,商品类别:goods_type; 用户收藏记录表t_collect_log,包含自增id,用户ID:user_id,商品ID:goods_id,收藏时间 c…

【WP】猿人学15_备周则意怠_常见则不疑

https://match.yuanrenxue.cn/match/15 抓包分析 抓包分析有一个m参数,三个数字组成 追栈/扣代码 根据启动器顺序追栈,一般优先跳过 jQuery 直接能找到加密函数 每次获取的数字都不一样 window.m function() { t1 parseInt(Date.parse(new Date(…

优思学院|谈汽车零部件企业生产精益及现场管理

精益生产(Lean Production)和现场管理作为现代制造企业的核心管理理念,正在越来越多的企业中得到应用。尤其是在中国,许多汽车零部件企业通过精益管理和六西格玛方法,显著提高了生产效率,降低了生产成本&am…

红酒:如何选择适合的红酒储存容器

选择适合的红酒储存容器对于保持雷盛红酒的品质和风味至关重要。不同的容器具有不同的优缺点,因此应根据个人需求和条件进行选择。以下是一些常见的红酒储存容器的特点和适用场景: 玻璃瓶:玻璃瓶是常见的红酒储存容器。它具有良好的密封性能、…

点云获取pcl点云以某个点云的已经分块得区域的交集

首先将点云分块得到区域后,获取每个块的box的最大最小点云,然后提取box内的点云。 pcl::IndicesPtr indexes(new pcl::Indices());pcl::getPointsInBox(*cloud_1, min_pt, max_pt, *indexes);// --------------------------取框内和框外点--------------…

iPhone 存储不足?快速释放空间的实用技巧

想象一下,您的iPhone上充满了GIF、照片、群聊记录、音乐和游戏。它可能已经成为您存储数据的核心设备,因此很容易就会填满存储空间。尽管iPhone 15和iPhone 14的起始存储容量提升到了128GB,但这对于一些用户来说可能仍然不够用。因此&#xf…

解决国内无法访问huggingface.co

在国内无法访问 https://huggingface.co 时,可以使用国内的镜像站点: HF-Mirror - Huggingface 镜像站加速访问Hugging Face的门户。作为一个公益项目,我们致力于提供稳定、快速的镜像服务,帮助国内用户无障碍访问Hugging Face的…

基于JSP技术的人事管理系统

你好呀,我是计算机学长猫哥!如果有相关需求,文末可以找到我的联系方式。 开发语言:Java 数据库:MySQL 技术:JSP技术 工具:浏览器(如360浏览器、谷歌浏览器、QQ浏览器等&#xff…

史上最走心midjourney教程多案例咒语注意点

一 :什么是Midjourney ?(文末附 MidJourney 知识库,从注册到使用教程还有高阶技巧应有尽有。) Midjourney是一个由同名研究实验室开发的人工智能程式,可根据文本生成图像,于2022年7月12日进入公…

搜维尔科技:【研究】Xsens Link对跑步运动学的可靠性

内容类型:客户案例 产品:MVN Link 产品用例:教育科研 应用领域:运动分析 在实验室环境之外分析现实环境中人体运动的能力正变得越来越重要。各个学科的研究人员,尤其是运动科学和生物力学的研究人员&a…

【Mongodb】Mongodb亿级数据性能测试和压测

一,mongodb数据性能测试 如需转载,请标明出处:https://zhenghuisheng.blog.csdn.net/article/details/139505973 mongodb数据性能测试 一,mongodb数据性能测试1,mongodb数据库创建和索引设置2,线程池批量…

C语言二级指针、指针数组

一、二级指针 指针变量也是变量,是变量就应有地址,那指针变量的地址存放在哪里?存放在二级指针变量。 此时,*ppa pa,**ppa a。 二、指针数组 指针数组,顾名思义就是存放指针的数组。 数组每个元素为int类…

精准导航:用A*算法优化栅格地图的路径规划【附Matlab代码】

目录 1.算法原理2.代码讲解3.结果展示4.代码获取 1.算法原理 A* 算法是一种基于传统图搜索的智能启发式算法,它具有稳定性高、节点搜索效率高等优点。主要原理为:以起点作为初始节点,搜索初始节点旁 8 个邻域,并通过启发函数评估…

IGraph使用实例——线性代数计算(blas)

1 概述 在图论中,BLAS(Basic Linear Algebra Subprograms)并不直接应用于图论的计算,而是作为一套线性代数计算中通用的基本运算操作函数集合,用于进行向量和矩阵的基本运算。然而,这些基本运算在图论的相…