PXE高效批量装机

一、系统安装

1. 系统装机的三种引导方式

1. 硬盘安装

2. 光驱(u盘)安装

3. 网络启动 pxe

2.系统安装过程

  • 加载boot loader
            Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境

  • 加载启动安装菜单

  • 加载内核和initrd系统(文件才能使用文件)

  • 加载根系统()

  • 运行anaconda的安装向导

Linux安装光盘的安装相关文件

在系统光盘的isolinux目录下有和安装相关的文件

  • boot.cat: 相当于grub的第一阶段

  • isolinux.bin:光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目

  • isolinux.cfg:启动菜单的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件

  • vesamenu.c32:是光盘启动后的启动菜单图形界面,也属于SYSLINUX项目,menu.c32提供纯文本的菜单

  • memtest:内存检测程序

  • splash.png:光盘启动菜单界面的背景图

  • vmlinuz:是内核映像

  • initrd.img:ramfs文件(精简版的linux系统,文件系统驱动等)

二、PXE

1. 介绍

        PXE 的全称是 preboot execute environment它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。

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

2. 优点

        规模化:同时装配多台服务器

        自动化:安装系统、配置各种服务

        远程实现:不需要光盘、U盘等安装介质

3. 实现过程

3.1 过程

1. 网卡需要查找相关的dhcp服务器(获取地址时间)

2. 找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)

3. 网卡使用tftp客户端吧引导程序加载到内存中来

4. bios执行引导程序

5. 引导程序会去TFTP去查找配置文件

6. 根据配置文件去引导安装系统

7. 系统安装过程

3.2 需要的服务

1. TFTP服务

        TFTP(简单文件传输协议):内核和引导文件

        是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。

2. vsftp

        安装系统镜像文件获取方式

3. syslinux

        syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。

4. DHCP服务

        DHCP服务是一种网络协议,全称为动态主机配置协议(Dynamic Host Configuration Protocol)。它可以自动分配IP地址、子网掩码、默认网关、DNS服务器等网络配置信息给计算机或其他网络设备,使设备能够正常连接到网络并进行通信。

3.3 四大文件

pxelinux.0:网络引导程序文件。(安装syslinux)
pxelinux.cfg/default:引导程序的配置文件。(手动创建文件夹,可参考isolinux目录下的 isolinux.cfg)
vmlinuz:内核文件。(光盘中获取,位于 isolinux 目录下)
initrd.img: 系统启动镜像文件。(光盘中获取,位于 isolinux 目录下)

3.4 PXE装机过程

(1)安装软件包

(2)配置 dhcp 并开启服务

        配置文件内容: 

(3)修改tftp配置文件

(4)挂载光盘,获取三大文件

(5)创建子目录

(6)配置vsftpd服务

        将光盘挂载到该目录下,供客户端下载 

(7)安装 kickstart

(8)配置 Kickstart 

基本配置: 

安装方法:

引导装载程序选项: 

分区信息: 

防火墙配置: 

显示配置: 

安装后脚本:

保存文件: 

因为ftp服务, 就保存到 /var/ftp 目录下

 (9)写入配置文件

(10)测试

新建一台虚拟机

等待几分钟,出现这样的界面就可以输入用户登录了

三、kickstart 无人值守安装

​​​​​​​

kickstart文件主要包括三个部分:命令段,程序包段,脚本段

 命令段:指明各种安装前配置,如键盘类型等

命令段中的常见命令:

        keyboard: 设定键盘类型

        lang: 语言类型

        zerombr:清除mbr

        clearpart:清除分区

        part: 创建分区

        rootpw: 指明root的密码

        timezone: 时区

        text: 文本安装界面

        network:指定网络设置

        firewall:设置防火墙设置

        selinux:设置selinux设置

        reboot:安装完自动重启

        user:安装完成后为系统创建新用户

        url: 指明安装源

​​​​​​​

程序包段:指明要安装的程序包组或程序包,不安装的程序包等 

%packages

@^environment group: 指定环境包组,如:@^minimal-environment

@group_name

package

-package

%end

脚本段: 

%pre: 安装前脚本

%post: 安装后脚本

注意:CentOS 8,7,6 不同版本的kickstart文件格式不尽相同,不可混

[root@localhost tftpboot]#yum install system-config-kickstart -y
#安装图形化工具

四、Cobbler

1. Cobbler介绍

        Cobbler是一个开源的系统管理和网络引导工具。它被设计用于自动化操作系统的安装和配置,并简化系统管理和部署。Cobbler可以集中管理多个操作系统的安装过程,并提供一种简单的方法来配置和管理网络引导。它使用DHCP、PXE和TFTP等网络工具来自动安装操作系统,并提供一个用户友好的Web界面来管理系统配置和部署。

2. Cobbler的工作原理

  • client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器(cobbler server)发送其分配好的一个IP

  • DHCP服务器(cobbler server)收到请求后发送responese,包括其ip地址

  • client裸机拿到ip后再向cobbler server发送请求OS引导文件的请求

  • cobbler server告诉裸机OS引导文件的名字和TFTP server的ip和port

  • client裸机通过上面告知的TFTP server地址通信,下载引导文件

  • client裸机执行执行该引导文件,确定加载信息,选择要安装的os,期间会再向cobbler server请求kickstart文件和os image

  • cobbler server发送请求的kickstart和os iamge

  • client裸机加载kickstart文件

  • client裸机接收os image,安装该os image ​​​​​​​

  • client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器(cobbler server)发送其分配好的一个IP

  • DHCP服务器(cobbler server)收到请求后发送responese,包括其ip地址

  • client裸机拿到ip后再向cobbler server发送请求OS引导文件的请求

  • cobbler server告诉裸机OS引导文件的名字和TFTP server的ip和port

  • client裸机通过上面告知的TFTP server地址通信,下载引导文件

  • client裸机执行执行该引导文件,确定加载信息,选择要安装的os,期间会再向cobbler server请求kickstart文件和os image

  • cobbler server发送请求的kickstart和os iamge

  • client裸机加载kickstart文件

  • client裸机接收os image,安装该os image

3. Cobbler的特点

  1. 自动化安装和配置:Cobbler可以自动化执行操作系统的安装过程,并自动配置系统设置,如网络配置、用户账户、软件包等。

  2. 集中管理:Cobbler可以集中管理多个操作系统的安装过程,包括CentOS、Ubuntu、Debian、Fedora等,并提供一致的管理界面和工具。

  3. 网络引导管理:Cobbler可以管理网络引导(Network Boot),使用DHCP、PXE和TFTP等网络工具来自动安装操作系统,并提供网络引导配置的简单方法。

  4. Web界面管理:Cobbler提供一个用户友好的Web界面,可以轻松配置和管理系统设置和部署。用户可以通过Web界面创建和管理安装文件、系统配置文件、软件包等。

  5. 插件扩展:Cobbler支持插件扩展,可以通过编写自己的插件来扩展其功能和定制需求。

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

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

相关文章

C#使用OpenCvSharp4库中5个基础函数-灰度化、高斯模糊、Canny边缘检测、膨胀、腐蚀

C#使用OpenCvSharp4库中5个基础函数-灰度化、高斯模糊、Canny边缘检测、膨胀、腐蚀 使用OpenCV可以对彩色原始图像进行基本的处理,涉及到5个常用的处理: 灰度化 模糊处理 Canny边缘检测 膨胀 腐蚀 1、测试图像lena.jpg 本例中我们采用数字图像处…

day39_mysql

今日内容 0 复习昨日 1 DML 2 约束 3 DQL 0 复习昨日 1 什么是数据库(Database)? 用来组织,存储,管理数据的仓库 2 什么是数据库管理系统(Database Management System-DBMS)? 用来管理数据库的一个软件 3 数据库分类 关系型数据库,Oracle,Mysql,SqlServer,DB2非关系数据库,Re…

深入理解Java中的ForkJoin框架原理

在现代多核处理器的时代,有效地利用并行计算可以极大地提高程序的性能。Java中的ForkJoin框架是Java 7引入的一个并行计算框架,它提供了一种简单而高效的方式来利用多核处理器。在本文中,我们将深入探讨ForkJoin框架的原理和工作方式。 一、什…

《区块链简易速速上手小册》第10章:区块链的未来与趋势(2024 最新版)

文章目录 10.1 区块链的未来展望10.1.1 基础知识10.1.2 主要案例:区块链在金融领域的发展10.1.3 拓展案例 1:区块链在供应链管理中的应用10.1.4 拓展案例 2:区块链在身份管理和隐私保护中的应用 10.2 新兴技术与区块链的融合10.2.1 基础知识1…

数据结构之图

图 图(Graph)是比树还要难以理解和学习的“多对多”数据结构,可以认为树也是图的一种。图的知识点众多,按照存储路径的方向分,可分为无向图和有向图,按照图的存储结构分,可分为完全图与有向完全…

InstantID: Zero-shot Identity-Preserving Generation in Seconds

文章目录 IntroductionMainReference 记录由国内首创的一个好玩的小项目,图像生成领域的新进展。但我希望现阶段计算机视觉领域的研究能更聚焦在 语义分割 和 三维视觉 上,这样能更方便与机器人等产品和工业实体结合。 Introduction InstantID 是一个基…

phpstudy安装并运行redis

对于一个菜鸟来说,任何一个小步骤都可能研究半天,比如“phpstudy安装并运行redis”这一问题,解决好后第一时间记录下来,方便日后查看,也为遇到同样困难的小伙伴提供个参考! 一、phpstudy安装redis 1.打开…

部署monggodb副本集分片集群

分片技术,可以满足MongoDB数据量大量增长的需求。当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足以提供可接受的读写吞吐量。这时,我们就可以通过在多台机器上分割数据,使得数据库系统能存储和处理更多的数据。…

不废话的将ts一篇文章写完

写在前面 网上很多写ts的教程的,但是我觉得写的太繁琐了,这里我直接将基础用法写上,包括编译后的js代码,以便于你们进行对比, 包括一些常见的报错信息,你们可以对比一下报错信息, 我尽量不废话的…

图形化编程:Scratch与6547网题库的奇妙结合

随着科技的飞速发展,编程教育逐渐成为孩子们不可或缺的技能。其中,图形化编程因其简单易懂的特性,受到了广大儿童的喜爱。Scratch,这一由麻省理工学院开发的编程工具,正是引领这一风潮的佼佼者。与此同时,6…

LeetCode202. 快乐数

202. 快乐数 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为…

HTML5的新特性

目录 一&#xff0c;新增语义化标签 二&#xff0c;新增的多媒体标签 三&#xff0c;新增input表单 四&#xff0c;新增的表单属性 一&#xff0c;新增语义化标签 二&#xff0c;新增的多媒体标签 1&#xff0c;音频&#xff1a;<audio>.。。用MP3 <audio src…

JavaScript 基础五 对象

JavaScript 基础五 对象 1. 对象2. 对象使用① 声明语法② 对象有属性和方法组成③ 属性对象属性的增删改查操作 ④ 方法 3. 对象遍历实例 4. 内置对象① 内置对象② 内置对象Math属性方法 引入&#xff1a;保存网站用户信息&#xff0c;比如姓名、年龄、电话号码&#xff0c;用…

ENG-2,可用于监测细胞内钠离子的动态变化

Replacement of Asante NaTrium Green-2 AM钠离子指示探针&#xff0c;ENG-2&#xff0c;可用于监测细胞内钠离子的动态变化 您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;Replacement of Asante NaTrium Green-2 AM钠离子指示探针&#xff0c;ENG-2 一、基本信…

如何对视频进行翻译

下载视频和翻译软件 视频和翻译软件点击下载就行了&#xff0c;下载之后解压&#xff0c;然后把两个exe点一下。接下来如果资金充裕或者要求比较高的可以使用各个api&#xff0c;网站里有视频介绍了。 经济适用视频翻译 原理简析 首先这个软件对视频的翻译的流程大致如下&a…

使用Python的Turtle模块简单绘制烟花效果

import turtle import random# 初始化屏幕 screen turtle.Screen() screen.bgcolor("black") screen.title("烟花模拟")# 创建一个Turtle来绘制烟花 firework turtle.Turtle() firework.hideturtle() firework.speed(0) # 设置绘图速度为最快# 绘制烟花…

如何系统的自学Python?通义千问、讯飞星火、文心一言及ChatGPT的回答

如何系统的自学Python&#xff1f;来看看通义千问、讯飞星火、文心一言及ChatGPT的回答. 第一个是马老师的通义千问 系统地自学Python是一个循序渐进的过程&#xff0c;从基础语法到实践项目&#xff0c;再到专业领域的深入学习。下面是一个详细的步骤指南&#xff1a; 了解Py…

vulhub靶机activemq环境下的CVE-2015-5254(ActiveMQ 反序列化漏洞)

影响范围 Apache ActiveMQ 5.x ~ Apache ActiveMQ 5.13.0 远程攻击者可以制作一个特殊的序列化 Java 消息服务 (JMS) ObjectMessage 对象&#xff0c;利用该漏洞执行任意代码。 漏洞搭建 没有特殊要求&#xff0c;请看 (3条消息) vulhub搭建方法_himobrinehacken的博客-CSD…

秦始皇帝陵K0007陪葬坑文物展览与文物预防性保护的璀璨交汇

秦始皇帝陵博物院近日迎来了一场引人注目的展览——“何止秦俑——秦陵苑囿之K0007陪葬坑”。此次展览首次集中展示了K0007陪葬坑出土的别具一格的陶俑、鲜活灵动的青铜水禽等珍贵文物。然而&#xff0c;这些文物的安全展出离不开高科技的监测平台与实时终端的24小时不间断保护…

英语不太行?数模美赛必备的翻译工具!

DeepL翻译:全世界最准确的翻译&#xff08;自称&#xff09; 网址&#xff1a;https://www.deepl.com/translator 优点&#xff1a;在专有名词翻译方面很准确&#xff0c;适合学术论文,可免费全文件翻译 缺点&#xff1a;全文件翻译时格式较乱&#xff0c;不过可以用于帮助初步…