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

          在验证主页是否能访问

或者浏览器访问

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

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

相关文章

Django API开发实战:前后端分离、Restful风格与DRF序列化器详解

系列文章目录 Django入门全攻略:从零搭建你的第一个Web项目Django ORM入门指南:从概念到实践,掌握模型创建、迁移与视图操作Django ORM实战:模型字段与元选项配置,以及链式过滤与QF查询详解Django ORM深度游&#xff…

中心极限定理的MATLAB例

独立同分布的中心极限定理: 设 X 1 , X 2 , … , X n X_1, X_2, \ldots, X_n X1​,X2​,…,Xn​ 是独立同分布的随机变量序列,且 E ( X i ) μ E(X_i) \mu E(Xi​)μ, D ( X i ) σ 2 > 0 D(X_i) \sigma^2 > 0 D(Xi​)σ2>0&a…

《C++ Primer Plus》第十三章复习题和编程练习

目录 一、复习题**二、编程练习 一、复习题** 1. 派生类从基类那里继承了什么? 答:在类的继承和派生中,C中的派生类能够继承基类的所有数据成员和大部分成员函数。但是基类中不同访问控制权限的成员在派生中的访问权限也不相同。公有成员直…

陆面生态水文模拟与多源遥感数据同化技术

原文链接:陆面生态水文模拟与多源遥感数据同化技术 了解陆表过程的主要研究内容以及陆面模型在生态水文研究中的地位和作用;熟悉模 型的发展历程,常见模型及各自特点;理解Noah-MP模型的原理,掌握Noah-MP 模型在单 站和区域的模拟、模拟结果的…

如何将AndroidStudio和IDEA的包名改为分层级目录

新版UIAndroidStudio 1、点击项目目录右上角如图所示的三个点点。 2、然后依次取消Hide empty middle package ,Flatten package的勾选 3、注意:一定要先取消hide的勾选,不然目录不会完全分级(做错了可以反过来重新设置&#x…

物资材料管理系统建设方案(Word)—实际项目方案

二、 项目概述 2.1 项目背景 2.2 现状分析 2.2.1 业务现状 2.2.2 系统现状 三、 总体需求 3.1 系统范围 3.2 系统功能 3.3 用户分析 3.4 假设与依赖关系 四、 功能需求 4.4.11.7 非功能性需求 五、 非功能性需求 5.1 用户界面需求 5.2 软硬件环境需求 5.3 产品质量需求 5.4 接口…

物联网8大协议介绍及对比

一.物联网主流协议介绍 1.MQTT 协议 MQTT(Message Queuing Telemetry Transport)即消息队列遥测传输。 MQTT 协议最初是在 1999 年由 IBM 公司开发的,用于将石油管道上的传感器与卫星相连接。2014 年正式成为 OASIS 开放标准。 MQTT 使用…

【面试八股总结】死锁:产生条件、预防死锁、处理死锁、避免死锁

一、什么是死锁? 死锁是指两个(或多个)线程互相等待对方数据的过程,死锁的产生导致程序卡死,不解锁程序将永远⽆法进⾏下 去 二、死锁产生条件 死锁只有同时满足以下四个条件才会发生:互斥条件&#xff1b…

ABC 357 G Stair-like Grid

link 其实是我之前写的一篇博客的推广 大意: 一个阶梯型,第 i i i行有 ⌈ i / 2 ⌉ ∗ 2 \left \lceil i/2 \right \rceil*2 ⌈i/2⌉∗2个方块,总共有n行。在其中给定 m m m个点无法经过,求从左上角到右下角的方案数。其中每次移…

wps:基本使用【笔记】

wps:基本使用【笔记】 前言版权推荐wps:基本使用如何去除复制文本的样式显示空格、换行、分节符快捷键设置字体添加章节添加奇数页分节符设置页边距设置页眉页脚设置页码 最后 前言 2024-6-5 23:10:12 以下内容源自《【笔记】》 仅供学习交流使用 版权…

(二)JSX基础

什么是JSX 概念:JSX是JavaScript和XML(HTML)的缩写,表示在JS代码中编写HTML模版结构,它是React中编写UI模板的方式。 优势:1.HTML的声明式模版方法;2.JS的可编程能力 JSX的本质 JSX并不是标准…

webapi跨越问题

由于浏览器存在同源策略,为了防止 钓鱼问题,浏览器直接请求才不会有跨越的问题 浏览器要求JavaScript或Cookie只能访问同域下的内容 浏览器也是一个应用程序,有很多限制,不能访问和使用电脑信息(获取cpu、硬盘等&#…

LeetCode 26删除有序数组中的重复项

去重题,双指针,,因为题干说原地删除,且nums其余元素不重要。一个cur记录当前不重复的数应该插在第几位了,for循环里的i相当于是第二个指针(右指针),遍历数组来找不重复的元素 class …

C#发送邮件的SMTP配置方法?如何群发邮件?

C#发送邮件安全性如何保障?C#怎么配置实现发送邮件? 在C#开发中,发送电子邮件是一个常见的需求。无论是用于注册确认、密码重置还是其他通知功能,SMTP(简单邮件传输协议)都是实现这一功能的关键。下面&…

Shell脚本学习_内置命令

目录 1.内置命令介绍: 2.Shell内置命令:alias设置别名 3.Shell内置命令:echo输出字符串 4.Shell内置命令:read读取控制台输入 5.Shell内置命令:exit退出 6.Shell内置命令:declare设置变量 1.内置命令…

kali2022安装教程(附安装包)

第一步:下载镜像文件 百度网盘下载https://pan.baidu.com/s/1efRQGFTbq6Kgw9axLOmWzg?pwdemxf 第二步:打开Vmware 第三步:进行各项配置 创建新的虚拟机,选择高级,然后下一步 直接默认下一步 选择稍后安装然后下…

设计软件有哪些?效果工具篇(3),渲染100邀请码1a12

这次我们再介绍一批渲染效果和后期处理的工具。 1、ColorCorrect ColorCorrect是一种图像处理技术,用于调整图像的色彩和对比度,使其更加自然和平衡。通过ColorCorrect,用户可以调整图像的色调、亮度、饱和度等参数,以达到理想的效…

kube-promethesu调整coredns监控

K8s集群版本是二进制部署的1.20.4,kube-prometheus对应选择的版本是kube-prometheus-0.8.0 Coredns是在安装集群的时候部署的,采用的也是该版本的官方文档,kube-prometheus中也有coredns的监控配置信息,但是在prometheus的监控页…

kivy 百词斩项目 报错

AttributeError: FigureCanvasKivyAgg object has no attribute resize_event AttributeError: FigureCanvasKivyAgg object has no attribute resize_event 是一种常见的Python错误,当你试图访问一个对象(在这个例子中是 FigureCanvasKivyAgg 对象&am…

二次规划问题(Quadratic Programming, QP)原理例子

二次规划(Quadratic Programming, QP) 二次规划(Quadratic Programming, QP)是优化问题中的一个重要类别,它涉及目标函数为二次函数并且线性约束条件的优化问题。二次规划在控制系统、金融优化、机器学习等领域有广泛应用。下面详细介绍二次规划问题的原理和求解过程 二…