PXE服务

一.PXE服务的功能介绍

1.无盘启动:PXE允许计算机在没有本地存储设备的情况下启动操作系统。这对于构建无盘工作站非常有用,因为计算机可以直接从网络加载操作系统和其他应用程序1。
2.远程安装操作系统:PXE技术可以用于远程安装操作系统,尤其适合于数据中心和大型企业环境中的批量部署。它可以简化和加速新硬件的初始化过程4。
3.自动化安装和配置:借助PXE,可以实现操作系统的无人值守安装。通过预先定义好的配置文件(如Kickstart脚本),可以自动化整个安装过程21。
4.系统维护和恢复:在系统故障或需要维护时,PXE可以用来引导进入一个临时环境(如Windows PE或Linux live环境),从而执行修复操作12。
5.简化网络管理:PXE使得管理员能够在网络上集中管理多台计算机的启动配置和软件部署,减少了对物理介质(如光盘、U盘)的依赖,提高了工作效率9。
6.规模化的部署:特别适用于大规模服务器部署,可以同时装配多台服务器,减少了手动操作的工作量15。

DHCP服务和FTP服务的组合,来实现PXE服务。

作用:实现批量安装部署Linux系统,

硬件服务器和个人PC不同,最基本的工作是在服务器上安装操作系统,

事先部署好一台PXE服务器,它提供的就是各操作系统的安装盘,

将来新服务器要想联系PXE服务器来安装操作系统,

二PXE服务相关的组件

1.DHCP服务器

向新服务器分配IP地址,告知新服务器TFTP的地址。

2.文件共享服务

支持ftp,nfs,http

提供系统安装源

文件共享服务共享出去的不是iso镜像文件而是iso镜像文件中的配置文件。

3.TFTP服务

提供菜单

提供对应系统的内核vmlinuz,系统初始化镜像文件initrd.img

4.pxelinux.0文件

让PXE服务器可正常接收新服务器启动安装系统的请求。

1.新机器的网卡上要有IP地址,需要在PXE服务器上配置DHCP服务,

2.还需要在PXE服务器上配置ftp服务,nfs服务,http协议这三种中的任意一种将这些文件共享出去。

3.还需要有tftp服务存在,这个tftp服务也是用来实现文件共享的,ftp底层是根据tcp协议工作的,tftp底层是根据udp协议工作的。

tcp速度慢,udp速度快,

并且tftp服务可以在对方客户端没有操作系统的前提下,根据客户端网卡上的tftp客户端,为客户端提供菜单,提供对应操作系统的内核vmlinuz,初始化镜像文件initrd.img

4.还需要有pexlinux.0文件存在,这个文件的作用是让PXE服务器可正常接收新服务器启动安装系统的请求。

一般情况下,ftp服务的客户端需要有客户端软件才能支持ftp服务,这里用tftp的好处是即使机器上没有相应的客户端软件,但是机器的网卡上有相应的tftp客户端软件支持tftp服务。

三.配置PXE服务提供centos7的安装源

1.扩展根分区容量

如上图所示,给这个虚拟机新增加一块硬盘,硬盘名称叫sdb,大小为50Gb

如上图所示,

1.pvcreate /dev/sdb: 这个命令用于将物理设备/dev/sdb标记为一个可以作为物理卷使用的设备。这通常是在添加新的硬盘到系统后进行的操作。
2.vgextend centos /dev/sdb: 这个命令将刚才创建的物理卷/dev/sdb加入到名为"centos"的卷组中。卷组是一个容器,它包含了多个物理卷,并且可以在其上创建逻辑卷。
3.lvextend -L +40G /dev/centos/root: 这个命令用来扩展名为"/dev/centos/root"的逻辑卷大小。在这个例子中,逻辑卷的大小增加了40GB。
4.xfs_growfs /dev/centos/root: 当XFS文件系统的逻辑卷大小改变时,我们需要运行这个命令来更新文件系统的元数据,使其能够利用新增加的空间。
5.df -hT | grep "root": 最后,这个命令是用来查看根目录(/)的磁盘使用情况。通过过滤出包含"root"的结果,我们可以看到根目录所在的分区的详细信息,包括文件系统类型、已用空间、剩余空间以及总容量。
总的来说,这些命令的目的是为了在Linux系统中增加根目录的可用存储空间。首先,一个新的硬盘被添加并格式化为物理卷;然后,该物理卷被添加到现有的卷组中;接着,逻辑卷的大小被调整以包含更多的空间;最后,文件系统被更新以反映这些变化,并验证根目录的可用空间已经增加。

2.安装pxe服务所需要的软件

如上图所示,安装pxe服务所需要的软件,安装dhcp和vsftpd,而tftp-server,xinetd都是为了让tftp能够正常工作的,syslinux的作用是提供pexlinux.0文件的。

3.配置ftp服务,共享系统安装文件

如上图所示,如果想要共享centos7的iso文件,就必须把这个iso文件挂载着,所以上图是挂载centos7的光盘到/mnt/,

如上图所示,现在/var/ftp目录下新创建一个目录centos74,然后将原来挂载iso镜像文件的目录下的所有文件都使用cp命令复制到/var/ftp/centos74,随后使用systemctl start vsftpd,systemctl enable vsftpd ,这里设置ftp服务的启动和开机自启动,随后可以使用netstat -antp | grep ftp

来查看ftp的默认端口21,是否打开了。即确认ftp服务是否启动成功,

4.配置TFTP服务

1)通过tftp服务共享内核,初始化镜像文件,菜单相关文件

这些文件就在安装光盘里面,

如上图所示,在centos7的ISO镜像文件中,vmlinuz是系统内核,initrd.img是初始化镜像文件,而isolinux.cfg是菜单相关文件。而剩下的所有/isolinux/目录中的文件都是为了让isolinux.cfg菜单相关文件显示的。所以为了让isolinux.cfg菜单相关文件显示,就需要让所有的文件都cp到tftp服务的数据目录/var/lib/tftpboot/中,

如上图所示,tftp服务的共享数据目录是/var/lib/tftpboot/

2)共享一个pxelinux.0文件

rpm -ql syslinux 查一下软件syslinux生成的文件

如上图所示,需要将pxelinux.0文件拷贝到/tftpboot/的数据目录中,以此让pxe服务器能够解释客户端机器发送过来的数据。

3)编辑菜单文件

如上图所示,菜单文件放在centos7ISO镜像文件的时候,这个菜单文件名称叫做isolinux.cfg

如上图所示,这个菜单文件在tftp服务中要想共享出去,必须要在/var/lib/tftpboot/pxelinux.cfg这个目录中,而且这个菜单文件的名称也必须是default文件,

如上图所示,这是针对菜单文件的一个编辑工作。

一个label标签就是一个菜单。

menu 是这个菜单显示什么话,

kernel:对应内核的存储位置,需要相对于/var/lib/tftpboot/这个tftp服务默认的数据目录。

append:initrd=系统初始化镜像文件,相对路径,也是相对于/var/lib/tftpboot/

inst.stage2=指定系统安装包文件的存储位置,即ftp服务共享出去的,存储着镜像文件中的内容文件的数据目录。

inst.repo=指定软件安装包的存储位置

即vim /var/lib/tftpboot/pxelinux.cfg/default,如上图所示,找到tftp的内核vmlinuz,系统初始化镜像文件initrd.img。

如果在编辑完菜单文件以后,文件保存不上,就使用:wq!,强制保存。

4)启动tftp服务

因为tftp没有单独的服务,所以想要在机器中启动tftp服务就要启动tftp的父进程即启动xinetd进程。

xinetd是tftp的父进程

vim /etc/xinetd.d/tftp

disable =no

使得tftp服务的启动受xinetd的控制,

如上图所示,在编辑完/etc/xinetd.d/tftp后,可以使用systemctl命令来重启xinetd进程,然后配置xinetd进程开机自启动,

如上图所示,tftp服务默认的是使用的udp协议的69号端口,所以此时使用命令netstat -aunp | grep 69 号端口相关的进程,此时会发现69号端口对应的进程名不是tftp而是xinetd进程。

5.配置DHCP服务

如上图所示,先拷贝一份dhcp配置文件的模板,

然后在/etc/dhcp/dhcpd.conf中去修改这个配置文件,配置子网掩码是24位,随后配置这个dhcp服务能够分出去的IP地址范围是192.168.183.100到192.168.183.200,即最多同时服务一百台机器,

这里的dhcp是组成pxe服务的一部分所以不需要网关和DNS服务器地址。

然后这个dhcp服务指定的tftp服务器地址是192.168.183.10

最后在dhcp服务的配置文件中指定tftp服务器共享的pxelinux.0文件名称。将来让新服务器拿到这个文件,新服务器才能正常地向pxe服务器发送请求。

如上图所示,随后启动dhcpd服务,然后将这个dhcp服务设置成开机自启动,这个dhcpd服务是基于udp协议的67号端口。

6.测试pxe服务

第一:确保测试机器和pxe服务器都在同一个网段中, 

第二:但凡在这个网段中存在DHCP服务器的时候,就需要把网络中原来的DHCP服务器关掉,

第三:用来安装centos7操作系统的机器内存最少2GB.

如上图所示,将vmnet8虚拟网络自带的dhcp服务关掉。

如上图所示,此时配置的PXE服务已经可以在不需要光盘的前提下去自动地出现图形化操作界面,

四.根据PXE服务提供centos6的自动化安装

1.配置ftp服务,共享centos6系统安装文件

在虚拟机开机的时候,更换ISO镜像文件,这时的更换镜像文件会给光盘断电,需要我们手动点击虚拟机右下角给光盘重新充上电。

如上图所示,此时重新挂载centos6的ISO镜像文件,到/mnt/。

如上图所示,此时在ftp的数据目录下重新配置一个centos6的数据目录,然后将原来镜像文件挂载目录中的所有文件都cp到ftp服务新的centos6的数据目录中。

2.配置tftp服务,共享centos6的内核还有初始化镜像。

如上图所示,在镜像文件挂载目录的isolinux目录下,也有centos6的内核文件即vmlinuz,也有centos6的初始化镜像文件即初始化镜像文件initrd.img。也有centos6的菜单文件即isolinux.cfg菜单文件,

因为Linux操作系统的内核文件和初始化镜像文件,以及菜单文件名称都一样所以不能直接将centos6的isolinux目录中的所有文件直接cp到tftp服务的数据目录中,也就是不能直接将centos6的isolinux目录中的所有文件直接cp到/var/lib/tftpboot/中,

如上图所示,这个问题的解决方案是在tftp服务的数据目录下重新创建一个目录,这个目录也就是专门存放centos6ISO镜像文件的内核文件和初始化镜像文件,

如上图所示,是在tftp服务的数据目录/var/lib/tftpboot/下重新创建一个目录也就是centos66,这个centos66的目录专门用来存放centos6ISO镜像文件的内核vmlinuz和初始化镜像文件initrd.img。

3.配置需要tftp服务分享的菜单文件。

如上图所示,这是在编辑需要tftp服务分享的菜单文件,

如上图所示,在原有的centos7的菜单项基础上,再加上一个centos6菜单项。

4.测试pxe服务

如上图所示,可以看到两个菜单项,选择centos66即可

URL(Uniform Resource Locator),中文通常称为“统一资源定位符”,是一种用于标识互联网上资源位置的标准格式地址。它是互联网上每个网页、文件或其他资源的唯一标识符。简单来说,URL就是我们在浏览器地址栏输入的那一串字符,用来访问网站或网络上的其他资源。

如上图所示,机器要自动配置网卡。

如上图所示,因为centos6的初始化镜像文件,来源是URL,所以这个要填写这个初始化镜像文件的来源,是由ftp服务分享的,地址路径是ftp://192.168.183.10/centos66

五.配置kickstart文件实现centos7系统自动安装

写一个特殊文件,在这个文件中存上,在安装系统的时候如何创建分区,如何配置,

然后借助文件共享服务将这个文件共享出去,这个文件专业的称呼叫做ks文件,中文叫做自动应答文件。

作用:实现系统的自动安装,

kickstart文件格式:

1.常规配置

设置语言,时区,

设置root密码

磁盘分区

网卡

创建普通用户

2.安装软件

%packages

软件名称

软件名称

软件名称

@软件组名称

%end

3.系统安装完毕后自动执行的操作

以%post开头

操作命令

操作命令

操作命令

以%end结尾

获取kick start文件的方法:

1.

如上图所示,这个文件中记录的就是当时在安装系统的时候,是怎么安装的磁盘分区,是怎么进行的基础设置

2.

system-config-kick start图形化工具

在Linux操作系统中有一个图形化工具我们可以借助这个图像化工具去生成一个kick start文件。

如上图所示,这是用来指定将来我的机器生成加密文件的时候,使用什么样的数学算法进行加密。

如上图所示,这个是用来显示当时我在安装系统的时候,我是以光盘镜像的方式安装的系统。

如上图所示,因为我们设置的pxe服务需要从ftp服务上来获取光盘文件,所以设置url=ftp://192.168.1.1/centos66

如上图所示,这个表示的是我在安装系统的时候,所有的操作都是以图像界面的形式显示,

如上图所示,这个表示的是在安装系统的时候,不以图像化的方式显示安装过程而是以纯文本的方式显示安装过程。

如上图所示,这个表示的是将来在安装系统的时候,系统引导程序安装那块硬盘上。

如上图所示,这是系统键盘的设置,即设置系统键盘是否支持中文。

如上图所示,这是系统语言的设置,即系统语言是否支持中文,

如上图所示,这时在表示这块网卡是什么名称以及这块网卡应该以什么样的方式来获取IP地址。

以及机器的主机名称是什么

如上图所示,这个表示的是机器的root管理员用户的密码设置。

如上图所示,这是在表示当机器开机的时候,自动启动什么服务。

如上图所示,这是关于我机器时区的设置情况。

如上图所示,这是机器上关于磁盘分区情况的介绍。

如上图所示,@core这个软件组名就是最小化安装,

@minimal

chrony

如何使用图像化化工具来生成一个 kickstart文件?

如上图所示,先安装图像化工具。

如上图所示,Linux上的图像转化工具没有。

如上所示,这个文件在centos7的系统上都通用。

2.借助FTP服务,共享ks文件

3.编辑菜单文件

vim /var/lib/tftpboot/pxelinux.cfg/default

4.测试系统自动安装

六.配置kickstart文件实现centos6系统自动安装

如上图所示,需要修改网卡名称,因为centos6操作系统的第一块网卡名称是eth0

如上图所示,url --url="ftp://192.168.183.10/centos66":指定安装源的位置。这里使用FTP协议从IP地址为192.168.183.10的服务器下载CentOS 6.6的安装镜像。

如上图所示,这是关于用centos6的ISO镜像文件安装的机器的磁盘设计。

如上图所示,这是我将来希望在cetos6的机器上安装的软件

将来我希望在centos6安装的时候把centos7的所有yum源都备份,

如上图所示,如果我将来希望在centos6安装的时候把centos7的所有yum源都备份在安装centos6的机器上。

如上图所示,将来把这个作为kickstart文件的centos6.cfg的文件通过ftp服务共享出去。

如上图所示,这是在编辑vim /var/lib/tftpboot/pxelinux.cfg/default菜单文件,

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

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

相关文章

HTML讲解(二)head部分

目录 1. 2.的使用 2.1 charset 2.2 name 2.2.1 describe关键字 2.2.2 keywords关键字 2.2.3 author关键字 2.2.4 http-equiv 小心!VS2022不可直接接触,否则!没这个必要,方源面色淡然一把抓住!顷刻炼化&#x…

VSCode C++(Code Runner)+ OpenSSL开发环境搭建

本章教程,主要介绍在VSCode中配置OpenSSL环境。 操作系统:wsl+ubuntu22.04 一、安装必备组件 1、安装g++ sudo apt install g++ 2、安装 OpenSSL sudo apt-get install libssl-dev 3、安装Code Runner插件 这个在vscode的插件市场可以找到,极力推荐使用,安装插件,可以…

nodejs 007:错误npm error Error: EPERM: operation not permitted, symlink

完整错误信息 npm error Error: EPERM: operation not permitted, symlink npm warn cleanup Failed to remove some directories [ npm warn cleanup [ npm warn cleanup C:\\Users\\kingchuxing\\Documents\\IPFS\\orbit-db-set-master\\node_modules\\ipfs-cli, npm…

如何在 Ubuntu 系统上部署 Laravel 项目 ?

到目前为止,Laravel 是 PHP 开发人员构建 api 和 web 应用程序的首选。如果你是新手的话,将 Laravel 应用程序部署到线上服务器上可能有点棘手。 在本指南中,我们将向您展示在 Ubuntu 系统中部署 Laravel 应用程序的全过程。 Step 1: Updat…

c++中的二叉搜索树

目录 ​编辑 一概念: 二性能分析: 三实现步骤: 31插入: 32删除: 33查找: 四应用(key与key_value): 41key模型: 42key_value模型: 一概念: 静图展示…

Linux(6)--CentOS目录

文章目录 1. 根目录2. cd目录切换命令3. CentOS目录介绍4. pwd命令介绍5. ls命令介绍5.1 ls5.2 ls -a5.3 ls -l 1. 根目录 Windows电脑的根目录是计算机(我的电脑),然后C盘、D盘。 Linux系统的根目录是/,我们可以使用cd /进入根目录,然后使…

20240919 - 【PYTHON】辞职信

import tkinter as tk # 导入 tkinter 模块,并简写为 tk from tkinter import messagebox # 从 tkinter 导入 messagebox 子模块,用于显示消息框 from random import random # 从 random 模块导入 random 函数,用于生成随机数# 创建窗口对…

一本还没发布的书,能在Github上拿25.6k⭐️,熬夜也要读完的书

重磅!从零构建大语言模型教程开源! 自从ChatGPT发布以来,大型语言模型(LLM)大放异彩。 如今市面上关于大模型的书籍和教程可谓琳琅满目,但基本上都只是从原理和参数调优上讲解的,没有一本系统性…

借老系统重构我准备写个OpenAPI3.1版的API管理工具(附录屏演示)

前段时间一直在忙公司老系统重构的方案设计,其中最大的重构点就是前后端分离。为了加快前后端协同开发和对接的工作效率,我决定写一个公司内部使用的OpenAPI3.1版的API管理工具。 文章目录 有现成的工具为啥不用现有成熟方案初步成果展示录屏演示下一步计…

手语识别系统源码分享

手语识别检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

计算机专业的就业方向

计算机专业的就业方向 亲爱的新生们,欢迎你们踏上计算机科学的旅程!作为一名计算机专业的学生,你们即将进入一个充满无限可能的领域。今天,我将为大家介绍计算机专业的一些主要就业方向,帮助你们了解未来的职业选择。…

Java面试篇基础部分-Java内部类介绍

首先需要了解什么是内部类,内部类就是定义在类的内部的类称为内部类,内部类可以根据不同的定义方式分为静态内部类、成员内部类、局部内部类和匿名内部类。 静态内部类 定义在类体内部的通过static关键字修饰的类,被称为静态内部类。静态内部类可以访问外部类的静态变量和…

深度学习对抗海洋赤潮危机!浙大GIS实验室提出ChloroFormer模型,可提前预警海洋藻类爆发

2014 年 8 月,美国俄亥俄州托莱多市超 50 万名居民突然收到市政府的一则紧急通知——不得擅自饮用自来水! 水是人类生存的基本供给,此通告关系重大,发出后也引起了不小的恐慌。究其原因,其实是美国伊利湖爆发了大规模…

OpenCV运动分析和目标跟踪(4)创建汉宁窗函数createHanningWindow()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 此函数计算二维的汉宁窗系数。 createHanningWindow是OpenCV中的一个函数,用于创建汉宁窗(Hann window)。汉宁…

Give azure openai an encyclopedia of information

题意:给 Azure OpenAI 提供一部百科全书式的信息 问题背景: I am currently dabbling in the Azure OpenAI service. I want to take the default model and knowledge base and now add on to it my own unique information. So, for example, for mak…

Vert.x HttpClient调用后端服务时使用Idle Timeout和KeepAlive Timeout的行为分析

其实网上有大量讨论HTTP长连接的文章,而且Idle Timeout和KeepAlive Timeout都是HTTP协议上的事情,跟Vert.x本身没有太大关系,只不过最近在项目上遇到了一些问题,用到了Vert.x的HttpClient,就干脆总结一下,留…

react学习笔记一:react介绍

将view规划成一个个的组件,是一个响应式的声明式的设计。 虚拟dom,减少dom操作。vue的虚拟dom是在react的基础上拓展来的。 单向数据流:是一种数据流动的模式。数据流的方向是有上到下的,在react中主要是从父组件流向子组件。 …

C语言进阶四:(指针和数组笔试题解析1)

一维数组: sizeof是计算内存大小的,strlen是计算字符串的长度。 int main() {//一维数组int a[] {1,2,3,4};printf("%d\n", sizeof(a));printf("%d\n", sizeof(a 0));printf("%d\n", sizeof(*a));printf("%d\n&q…

GitLab邮箱发送邮件:如何实现自动化发信?

gitlab邮箱发送邮件设置教程?Gitlab邮箱配置和使用? GitLab不仅提供了代码版本控制、持续集成/持续部署等功能,还支持通过其内置的邮件功能实现自动化邮件发送。AokSend将深入探讨如何在GitLab中配置和使用邮箱发送邮件功能。 GitLab邮箱发…

ERP进销存管理系统的业务全流程 Axure高保真原型源文件分享

这是一套ERP进销存管理系统的业务全流程Axure高保真原型设计文档。 原型预览地址:https://ppndif.axshare.com 产品意义: 提高工作效率: 电子记账替代手工记账,减少工作负担和人为错误。 实时查看库存情况,减少盘点时…