PXE服务

news2024/11/15 14:23:40

一.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.coloradmin.cn/o/2139313.html

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

相关文章

C++11的部分新特性

目录 1.列表初始化 1.1 { } 初始化 1.2 std::initializer_list 2.声明 2.1 auto 2.2 decltype 2.3 nullptr 3. 范围for 4.STL中的一些变化 5.右值引用与移动语义 5.1 左值引用与右值引用 5.2 左值引用与右值引用的比较 5.3 右值引用使用场景 5.4 完美转发 6.新的…

操作系统week2

操作系统学习 二.处理机管理 19.生产者-消费者问题 问题: 代码: 20.多生产者-多消费者问题 实现: 21.吸烟者问题(单生产者-多消费者) 问题: 实现: 22.读者-写者问题 问题: 读优先的代码&…

CentOS7更换阿里云yum更新源

目前CentOS内置的更新安装源经常报错无法更新,或者速度不够理想,这个时候更换国内的镜像源就是一个不错的选择。 备份内置更新源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 下载阿里云repo源(需要系统…

Cubieboard2(三) 系统构建 —— WSL Ubuntu 中挂载 U 盘(SDCard)

文章目录 1 WSL Ubuntu 中挂载 U 盘(SDCard)2 usbipd 搭建虚拟机与宿主机 USB 通信桥梁3 WSL 内核添加 USB 设备驱动3.1 编译 WSL Linux 内核3.2 挂载 USB(SDCard) 设备 附录:WSL 操作命令附录:git 仓库检出 1 WSL Ubuntu 中挂载 U 盘(SDCard) Linux 驱动…

使用OpenFeign在不同微服务之间传递用户信息时失败

文章目录 起因原因解决方法: 起因 从pay-service中实现下单时,会调用到user-service中的扣减余额。 因此这里需要在不同微服务之间传递用户信息。 但是user-service中始终从始至终拿不到user的信息。 原因 在pay-service中,不仅要Enable O…

YOLO学习笔记 | YOLO目标检测算法(YOLO-V2)

github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 YOLO-V2 V1与V2区别Batch Normalization更大分辨率YOLO-V2网络结构 V1与V2区别 V2更强更快 Batch Normalization 更大分辨率 YOLO-V2网络结构

顺序栈讲解

文章目录 🍊自我介绍🍊顺序栈讲解生活中的例子栈的基本概念入栈和出栈 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞关注评论收藏(一键四连)哦~ 🍊自我介绍 Hello,大家好,我是小…

《ImageNet Classification with Deep Convolutional Neural Networks》论文导读

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl《ImageNet Classification with Deep Convolutional Neural Networks》是一篇在深度学习领域具有重要影响力的论文,由Alex Krizhevsky、Ilya Sutskever和Geoffrey E. Hinton等人撰写。该论文主要…

窗口嵌入桌面背景层(vb.net,高考倒计时特供版)

开发思路 根据系统生成高考倒计时的具体时间,附加江苏省省统考的时间生成算法,并且用户可以根据实际情况调整前后30天,具有丰富多彩的图片库和强大的自定义功能,效果图见P3 目前程序处于正式版的1.4版本,本程序由本作…

【信创】Linux上图形化多ping工具--gping的编译安装与打包 _ 统信 _ 麒麟 _ 方德

原文链接:【信创】图形化多ping工具gping的编译安装与打包 | 统信 | 麒麟 | 方德 Hello,大家好啊!今天给大家带来一篇关于在Linux操作系统上使用gping的文章。gping是一款非常实用的命令行工具,它将传统的ping命令进行了可视化改进…

CCPC赛后补题-线性基

模板题:https://www.luogu.com.cn/problem/P3812 线性基可以用一个长度为$ \log_2N $的数组描述值域[1,N],0的情况需要特判。 一个长度为64的线性基可以描述所有的64位整数。 在2024年CCPC网络赛中,考到了线性基。没学过,追悔莫…

解决iframe嵌套第三方页面被拒绝

背景 很多时候,出于安全考虑,没有第三方页面的允许,我们是无法直接通过iframe去打开别人的第三方页面的,通常他们会通过在页面请求的响应头增加X-Frame-Options (去了解)和Content-Security-Policy (去了解)。 目的 可是有些时…

详细介绍 Servlet 基本概念——以餐厅服务员为喻

什么是Servlet Servlet 是 Java EE(Java Platform, Enterprise Edition)中用于构建动态 web 应用的组件。它在服务器端运行,并能够处理客户端请求,生成动态响应。以下是对 Servlet 的详细介绍: 1. Servlet 的基本概念…

COSMOSPANDA星际熊猫助阵长江商学院高尔夫周年庆典

在金秋送爽的美好时节,星际漫游(广州)品牌管理有限公司旗下备受欢迎的潮玩IP“COSMOSPANDA星际熊猫”与长江商学院深圳校友会强强联手,于9月10日在风景如画的中山雅居乐长江高尔夫球会成功举办了“长江商学院深圳校友会高尔夫球队…

基于ssm+vue+uniapp的智能停车场管理系统小程序

开发语言:Java框架:ssmuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:M…

6.1 溪降技术:绳结

目录 6.1 绳结电子书:绳结1级概览正确打结打绳结绳结组成部分学习术语八字套结(双八字结)观看技术步骤双重单结(反手结绳耳)观看技术步骤骡子结(驮马结)观看技术步骤 6.1 绳结 电子书&#xff1…

【人工智能】AI创业的前沿思考 | 从垂直领域到通用智能模型AGI的崛起

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作&…

影视剧数据分析与可视化

数据入口:影视剧数据集 - Heywhale.com 读取的数据包含750条条目,分布在6个列中。以下是数据的列和它们的数据类型: 影视剧名称(object):表示影视剧的名称。影视剧标签(object)&…

<<编码>> 第 12 章 二进制加法器--全加器 示例电路

全加器的内部构成 info::操作说明 鼠标单击逻辑输入切换 0|1 状态 primary::在线交互操作链接 https://cc.xiaogd.net/?startCircuitLinkhttps://book.xiaogd.net/code-hlchs-examples/assets/circuit/code-hlchs-ch12-05-full-adder-internal.txt 全加器 info::操作说明 鼠标…

机器学习实战21-基于XGBoost算法实现糖尿病数据集的分类预测模型及应用

大家好,我是微学AI,今天给大家介绍一下机器学习实战21-基于XGBoost算法实现糖尿病数据集的分类预测模型及应用。首先阐述了 XGBoost 算法的数学原理及公式,为模型构建提供理论基础。接着利用 kaggle 平台的糖尿病数据集,通过详细的…