PXE实现自动批量安装部署操作系统

news2024/11/27 9:39:33

目录

一、PXE介绍

二、PXE涉及的相关知识点

三、搭建PXE网络体系的前提

四、服务端要安装一系列的依赖环境

五、搭建 PXE 远程安装服务器

5.1、安装并启动TFTP服务

5.2、安装并启用 DHCP 服务

5.3、准备 Linux 内核、初始化镜像文件、准备 PXE 引导程序

5.4、安装FTP服务,准备CentOS 7 安装源

5.5、配置启动菜单文件

验证

六、实现 Kickstart 无人值守安装


一、PXE介绍

PXE(Preboot eXecution Environment)是一种在计算机启动时使用网络接口从远程服务器获取操作系统安装和启动信息的技术。通过PXE,计算机可以从局域网中的PXE服务器上下载操作系统安装文件,并进行自动化的操作系统部署或故障排除。由Intel公司开发的PXE网络引导技术工作在Client/Server模式,可以同时装配多台机器,安装系统、配置各种服务,同时不需要光盘、U 盘等安装介质实现远程连接。

二、PXE涉及的相关知识点

PXE协议:PXE是一种预启动执行环境,提供了一种从网络上启动计算机并在网络环境中安装操作系统的方法。PXE协议包括了BOOTP(Bootstrap Protocol)和TFTP(Trivial File Transfer Protocol),同时也支持DHCP、HTTP等其他协议。

PXE引导文件:PXE引导文件包括了各种操作系统的引导文件,如Linux内核、Windows PE等,它们通常存储在PXE服务器上的TFTP目录中。当客户端通过PXE启动时,它会从PXE服务器上下载相应的引导文件。

DHCP服务:DHCP服务是为客户端分配IP地址、子网掩码、网关等网络参数的协议。在PXE自动装机过程中,DHCP服务器会向客户端提供PXE服务器的IP地址和PXE引导文件的位置信息。

TFTP服务:TFTP服务是一个简单的文件传输协议,用于将引导文件和操作系统映像从PXE服务器传输到客户端计算机上。

操作系统映像:操作系统映像是安装操作系统所需的文件,通常包括了操作系统核心文件、驱动程序、软件包等。在PXE自动装机中,这些映像文件存储在PXE服务器上,并通过TFTP服务传输到客户端计算机上进行安装。

三、搭建PXE网络体系的前提

1、合适的设备:需要拥有一台作为PXE服务器的计算机,该计算机需要具备足够的处理能力和存储空间来运行PXE服务和存储操作系统映像。此外,还需要一台或多台客户端计算机,这些计算机将通过PXE引导从服务器上下载并安装操作系统。

2、网络基础设施:你需要拥有一个稳定可靠的局域网环境,以便PXE服务器和客户端计算机之间进行通信。确保网络连接正常、IP地址分配正确,并且网络设备(如交换机、路由器)能够正常工作。客户机的网卡要支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。一般大多数服务器主机都支持,只需在BIOS设置中允许从 Network 或 LAN 启动即可。

3、PXE服务器软件:你需要选择并安装适当的PXE服务器软件。常用的PXE服务器软件包括ISC DHCP、TFTPD32、tftp-server、Serva等,它们提供了DHCP、TFTP等服务,方便配置和管理PXE引导文件、操作系统映像等。

四、服务端要安装一系列的依赖环境

TFTP:简单文件传输协议。基于UDP实现,用于客户端和服务端之间进行小文件的传输

xinetd:网络守护进程服务器,管理TFTP

DHCP:分配IP地址,提供引导文件的文件

TFP:传输镜像等等大文件

kickstart:无人值守程序

五、搭建 PXE 远程安装服务器

服务器中包含 CentOS 7 安装源、TFTP 服务、DHCP 服务,能够向客户机裸机发送 PXE引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。

服务器IP地址:172.16.80.12

5.1、安装并启动TFTP服务

//关闭防火墙,临时禁用SELinux安全机制
[root@12 ~]# systemctl stop firewalld
[root@12 ~]# setenforce 0


//安装 TFTP 服务
[root@12 ~]# yum -y install tftp-server xinetd

//修改TFTP服务的配置文件
//将第十行 wait 的值改为 yes (表示可以连接多台主机)
//将第十四行的 disable 的值改为 no (表示开启TFTP服务)
[root@12 ~]# vim /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = no
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

//重启tftp和xinetd服务,并设置开机自启
[root@12 ~]# systemctl restart tftp
[root@12 ~]# systemctl enable tftp
[root@12 ~]# systemctl restart xinetd
[root@12 ~]# systemctl enable xinetd

5.2、安装并启用 DHCP 服务

//安装dhcp软件包
[root@12 ~]# yum -y install dhcp

//将dhcp配置模板复制到dhcp配置文件中
[root@12 ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? yes

//修改DHCP服务的配置文件
[root@12 ~]# vim /etc/dhcp/dhcpd.conf
//在11行的max-lease-time 7200; 下添加
//ddns-update-style none;
//next-server 172.16.80.12;
//filename "pxelinux.0";
//如下所示
 default-lease-time 600;
 max-lease-time 7200;
 ddns-update-style none;
 next-server 172.16.80.12;
 filename "pxelinux.0";

//修改第35到38行的subnet模块
//如下所示
subnet 172.16.80.0 netmask 255.255.255.0 {
  range 172.16.80.50 172.16.80.60;
  option routers 172.16.80.12;
}

//:wq 保存退出

//重启dhcpd服务,并设置为开机自启
[root@12 ~]# systemctl restart dhcpd
[root@12 ~]# systemctl enable dhcpd

对配置文件里修改/添加的内容解释

ddns-update-style none;        ->        禁用 DNS 动态更新

next-server 172.16.80.12;        ->        指定 TFTP 服务器的地址

filename "pxelinux.0";        ->        指定要下载的 PXE 引导程序的文件
 

subnet 172.16.80.0 netmask 255.255.255.0 {        #声明要分配的网段地址
  range 172.16.80.50 172.16.80.60;        #设置地址池
  option routers 172.16.80.12;        #默认网关地址指向TFTP服务器的IP地址
}

5.3、准备 Linux 内核、初始化镜像文件、准备 PXE 引导程序

[root@12 ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@12 ~]# cd /mnt/images/pxeboot

//复制 Linux系统的内核文件 到TFTP根目录下
[root@12 pxeboot]# cp vmlinuz /var/lib/tftpboot/

//复制 初始化镜像文件(linux引导加载模块)到TFTP根目录下
[root@12 pxeboot]# cp initrd.img /var/lib/tftpboot/

[root@12 pxeboot]# yum -y install syslinux
//复制 PXE引导程序 到TFTP根目录下
[root@12 pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

如果报如下错误:

[root@12 ~]# mount /dev/sr0 /mnt
mount: no medium found on /dev/sr0


5.4、安装FTP服务,准备CentOS 7 安装源

//安装vsftpd服务
[root@12 pxeboot]# yum -y install vsftpd

//在ftp根目录下创建目录centos7
[root@12 pxeboot]# mkdir /var/ftp/centos7

//将镜像文件强制复制到centos7目录中,可加&让它自己后台运行
[root@12 pxeboot]# cp -rf /mnt/* /var/ftp/centos7/

//重启vsftpd服务,设置开机自启
[root@12 pxeboot]# systemctl restart vsftpd
[root@12 pxeboot]# systemctl enable vsftpd

5.5、配置启动菜单文件

默认的启动菜单文件在TFTP根目录的 pxelinux.cfg子目录下,文件名为default。

[root@12 pxeboot]# mkdir /var/lib/tftpboot/pxelinux.cfg
//创建default文件
[root@12 pxeboot]# vim /var/lib/tftpboot/pxelinux.cfg/default
//添加内容如下
default auto
#指定启动菜单的默认入口
prompt 0
#不等待用户控制,自行向下选择

label auto
#图像化界面的引导入口,label 用来定义启动项
kernel vmlinuz
#加载内核文件,kernel 和 append用来定义引导参数
append initrd=initrd.img method=ftp://172.16.80.12/centos7

label linux text
#文本安装引导入口
kernel vmlinuz
append text initrd=initrd.img method=ftp://172.16.80.12/centos7

label linux rescue
#救援模式引导入口
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://172.16.80.12/centos7


//:wq保存退出

验证

自定义新建一个虚拟机,简单测试验证一下 :

 

 开启刚才新建的虚拟机

会有如下提示,点否即可

 

 

服务器配置成功

六、实现 Kickstart 无人值守安装

在上述实验中,已经可以做到开机就能自动获取镜像,安装镜像,配置基础网路配置。但是后半部分依旧需要手动安装。所以要实现全自动化,就要引入Kickstart程序服务,实现真正完全全自动化安装。

//安装软件包
[root@12 pxeboot]# yum install -y system-config-kickstart

MobaXterm远程连接软件可以用命令调出 Kickstart 配置程序界面,命令为:system-config-kickstart

//打开 Kickstart 配置程序界面
[root@12 pxeboot]# system-config-kickstart

基本配置 

 安装方法

引导装载程序选项

 

 分区信息

.

点击ADD添加布局

添加 /boot

 添加 交换分区

添加 / 

网络配置

 

防火墙配置

 

安装后脚本

 

保存文件

 

//保存后配置文件在~目录
[root@12 pxeboot]# cd ~
[root@12 ~]# ls
anaconda-ks.cfg  Documents  ks.cfg  original-ks.cfg  Public     Videos
Desktop          Downloads  Music   Pictures         Templates
//编辑 ks.cfg ,加入要下载的包 
[root@12 ~]# vim ks.cfg

#在原有的基础上添加以下内容

%packages

@base
@core
@desktop-debugging
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@print-client
@x11
binutils
chrony
ftp
gcc
kernel-devel
kexec-tools
make
open-vm-tools
patch
python

%end


[root@12 ~]# cp ks.cfg /var/ftp/ks.cfg
[root@12 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
#改为以下内容

default auto
prompt 0

label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://172.16.80.12/centos7 ks=ftp://172.16.80.12/ks.cfg

label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://172.16.80.12/centos7

label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://172.16.80.12/centos7

 重置刚刚建的虚拟机,虚拟机会自动安装

自动装机,实验成功

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

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

相关文章

【C++第二阶段】赋值运算符重载

你好你好&#xff01; 以下内容仅为当前认识&#xff0c;可能有不足之处&#xff0c;欢迎讨论&#xff01; 文章目录 赋值运算符重载 赋值运算符重载 实验①&#xff0c;还没有对析构运算符重载时 #include<iostream> #include<string> using namespace std;clas…

1Coze平台介绍

2023年随着OpenAI推出GPT 3.5&#xff0c;AI赛道变得更加火热。GPT&#xff08;Generative Pre-trained Transformer&#xff09;是一种自然语言处理&#xff08;NLP&#xff09;模型&#xff0c;用于生成文本、理解语言和进行各种语言任务。GPT是由OpenAI开发的&#xff0c;它…

【C语言】简单贪吃蛇实现保姆级教学!!!

关注小庄 顿顿解馋૮(˶ᵔ ᵕ ᵔ˶)ა 新年快乐呀小伙伴 引言&#xff1a; 小伙伴们应该都有一个做游戏的梦吧&#xff1f;今天让小庄来用C语言简单实现一下我们的童年邪典贪吃蛇&#xff0c;顺便巩固我们的C语言知识&#xff0c;请安心食用~ 文章目录 贪吃蛇效果一.游戏前工作…

ubuntu22.04@laptop OpenCV Get Started: 011_edge_detection

ubuntu22.04laptop OpenCV Get Started: 011_edge_detection 1. 源由2. edge_detection应用Demo2.1 C应用Demo2.2 Python应用Demo 3. 重点逐步分析3.1 GaussianBlur去噪3.2 Sobel边缘检测3.2.1 SobelX方向边缘检测3.2.2 SobelY方向边缘检测3.2.3 SobelXY方向边缘检测 3.3 Canny…

AI大模型专题:工业大模型技术应用与发展报告1.0

今天分享的是AI大模型系列深度研究报告&#xff1a;《AI大模型专题&#xff1a;工业大模型技术应用与发展报告1.0》。 &#xff08;报告出品方&#xff1a;中国信通院&#xff09; 报告共计&#xff1a;25页 人工智能的几个相关概念 大模型&#xff1a;即基础模型&#xff…

精品jsp+ssm汽车店维保信息系统

《[含文档PPT源码等]精品jspssm汽车店维保信息系统[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 使用技术&#xff1a; 开发语言&#xff1a;Java 框架&#xff1a;ssm 技术&#xff1a;JSP JDK版本&…

NBlog个人博客部署过程记录 -- 后端springboot + 前端vue

项目是fork的Naccl大佬NBlog项目&#xff0c;页面做的相当漂亮&#xff0c;所以选择了这个。可以参考2.3的效果图 惭愧&#xff0c;工作两年了也每个自己的博客系统&#xff0c;趁着过年时间&#xff0c;开始搭建一下. NBlog原项目的github链接&#xff1a;Naccl/NBlog: &#…

问题:宋朝为了加强皇帝对司法权的直接控制建立了() #微信#微信问题:宋朝为了加强皇帝对司法权的直接控制建立了() #微信#微信

问题&#xff1a;宋朝为了加强皇帝对司法权的直接控制建立了&#xff08;&#xff09; A.大理寺 B.刑部 C.审刑院 D.廷尉 参考答案如图所示

webpack实际实践优化项目

参考&#xff1a; 如何通过性能优化&#xff0c;将包的体积压缩了62.7% 雅虎35条 20210526-webpack深入学习&#xff0c;搭建和优化react项目 本文只专注于性能优化的这个部分。 总体来说分为两个方面&#xff1a;第一是开发环境中主要优化打包速度&#xff0c;第二是线上环境…

VScode+PlatformIO 物联网Iot开发平台环境搭建

1.vscode &#xff08;1&#xff09;安装platformIO插件 &#xff08;2&#xff09;新建项目或导入已有的arduino项目 Name&#xff1a;需要填写你项目的名称&#xff1b; Board&#xff1a;点开是一个下拉框&#xff0c;但是可以输入你想要的开发板&#xff0c;这里选择&quo…

Spring Task定时任务

目录 1、介绍 2、cron表达式 2.1、在线生成器 2.2、通配符 3、代码示例 3.1、使用步骤 3.2、 代码开发 3.3、测试 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;专注于Java领域学习&#xff0c;擅长web应用开发…

【前端高频面试题--Vue组件通信篇】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;前端高频面试题 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac;前端高频面试题--Vue组件通信篇 往期精彩内容Vue与VueComponent的关系props / $emit父子组件传值父…

备战蓝桥杯---图论之最短路Bellman-Ford算法及优化

目录 上次我们讲到复杂度为&#xff08;nm)logm(m为边&#xff0c;n为点&#xff09;的迪杰斯特拉算法&#xff0c;其中有一个明显的不足就是它无法解决包含负权边的图。 于是我们引进Bellman-Ford算法。 核心&#xff1a;枚举所有的点&#xff0c;能松弛就松弛&#xff0c;直…

《剑指offer》

本专题是分享剑指offer的一些题目&#xff0c;开始刷题计划。 二维数组的中的查找【https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e?tpId13&tqId11154&ru/exam/oj】 描述 在一个二维数组array中&#xff08;每个一维数组的长度相同&#xff0…

[计算机提升] 备份系统:设置还原点

6.7 备份系统&#xff1a;设置还原点 在Windows系统中&#xff0c;系统还原点是指系统在特定时间存储的重要系统文件的备份。通过创建系统还原点&#xff0c;可以轻松地将系统恢复到之前创建还原点的状态。这有助于解决系统文件损坏或Windows操作系统出现问题的情况。 1、右键…

推荐在线图像处理程序源码

对于喜爱图像编辑的朋友们来说&#xff0c;Photoshop无疑是处理照片的利器。然而&#xff0c;传统的Photoshop软件不仅需要下载安装&#xff0c;还对电脑配置有一定的要求&#xff0c;这无疑增加了使用的门槛。 现在&#xff0c;我们为您带来一款革命性的在线PS修图工具——基…

Redis篇----第一篇

系列文章目录 文章目录 系列文章目录前言一、什么是 Redis?二、Redis 与其他 key-value 存储有什么不同?三、Redis 的数据类型?四、使用 Redis 有哪些好处?五、Redis 相比 Memcached 有哪些优势?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住…

GAN生成对抗性网络

一、GAN原理 出发点&#xff1a;机器学习中生成模型的问题 无监督学习是机器学习和未来人工智能的突破点&#xff0c;生成模型是无监督学习的关键部分 特点&#xff1a; 不需要MCMC或者变分贝叶斯等复杂的手段&#xff0c;只需要在G和D中对应的多层感知机中运行反向传播或者…

(2024,DiS,扩散,状态空间主干,Mamba)具有状态空间主干的可扩展扩散模型

Scalable Diffusion Models with State Space Backbone 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 2. 方法 2.1 基础 2.2 模型结构设计 3. 实验 0. 摘要 这篇论文提出…

挑战杯 python区块链实现 - proof of work工作量证明共识算法

文章目录 0 前言1 区块链基础1.1 比特币内部结构1.2 实现的区块链数据结构1.3 注意点1.4 区块链的核心-工作量证明算法1.4.1 拜占庭将军问题1.4.2 解决办法1.4.3 代码实现 2 快速实现一个区块链2.1 什么是区块链2.2 一个完整的快包含什么2.3 什么是挖矿2.4 工作量证明算法&…