linux中“PXE高效批量装机”

在大规模的 Linux 应用环境中,如 Web 群集、分布式计算等,服务器往往并不配备光驱设备,在这种情况下,如何为数十乃至上百台服务器裸机快速安装系统呢?传统的 USB光驱、移动硬盘等安装方法显然已经难以满足需求。

PXE                                                              按下电源

1:iso系统镜像                                               开机自检

2:FTP                           读取BIOS中谁是引导设备(光驱,硬盘,U盘,网卡) 

3:DHCP(rarp协议)                                加载引导程序

4:TFTP(简单文件传输协议)          加载初始化镜像

内核文件,初始化镜像文件。                 加载内核

引导程序,引导配置文件。           systemd(init)(守护进程)

                                                             进程树(tree)

本章将学习基于 PXE(Preboot eXecution Environment,预启动执行环境)技术的网络装机方法,并结合 Kickstart 配置实现无人值守自动安装。

上述服务器的批量部署方法,具备以下三个优点:

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

自动化:安装系统,配置多种服务;

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

PXE是由intel公司开的网络引导技术,工作在client/server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。若要搭建PXE网络体系,必须满足以下几个前提条件。

客户机的网卡支持PXE(集成BOOTROM芯片,)且主板型号支持网络引导。

网络中有一台DHCP服务器以便为客户机自动分配地址,指定引导文件位置。

服务器通过TFTP(trivial file transfer protocol,简单文件传输协议)提供引导镜像文件的下载。客户端还没有IP地址,用rarp协议(反向地址解析),以mac地址作为依据向DHCP服务器分一个IP地址。

其中,第一个条件实际上要硬件要求,目前绝大数服务器和大多数PC都能提供此支持,只需在BIOS设置中允许从NEWORK或LAN启动即可。下面将介绍PXE远程安装服务的基本部署过程。

搭建PXE远程安装服务器

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

1,准备centos7安装源

centos7的网络安装源一般通过HTTP,FTP协议发布,另外也支持NFS(network file system,网络文件系统)协议。

例如,若采用FTP协议发布安装源,可以在服务器上部署一个YUM软件仓库。

2,安装并启用TFTP服务

TFTP服务由tftp-server软件包提供,配置文件位于/etc/xinetd.d/tftp。配置时只要将“disable=yes”改为“disable=no”,然后启动TFTP服务即可。

3,准备LINUX内核,初始化镜像文件。

用于PXE网络安装的LINUX内核,初始化镜像文件可以从centos7系统光盘获得,分别为vmlinuz和initrd.img,位于文件夹images/pxeboot下,找到这两个文件并将其复制到tftp服务的根目录下。

4,准备PXE引导程序

用于PXE网络安装的引导程序为pxelinunx,0,由软件包syslinux提供,安装好软件包syslinux,然后将文件pxelinux.0也复制到tftp服务的根目录下。

5,安装并启用DHCP服务

由于PXE客户机通常是尚未安装的系统的裸机,因此为了与服务器取得联系并正确下载相关引导文件,需要预先配置好DHCP服务来自动分配地址并告知引导文件位置。如PXE服务器的IP地址为192.168.4.254,DHCP地址池为192.168.4.100——192.168.4.200,即可以参考一下操作来搭建DHCP服务器。

从上述过程可以看到,与一般DHCP服务不同的是,配置文件增加了netx-server和filename这两行记录,分别用来指定TFTP服务器的地址和PXE引导过程的文件名。

6,配置启动菜单文件

启动菜单用来指导客户积极的引导过程,包括如何调用内核,如何加载初始化镜像。默认的启动菜单文件为default,应放置在tftp根目录的pxelinux.cfg子目录下,典型的启动菜单配置可参考以下操作手动建立。

上述配置记录中定义了三个引导入口,分别为图形安装(配置),文本安装,救援模式。其中,prompt用来设置是否等待用户选择;label用来定义并分隔启动项,kernrl和append用来定义引导参数。引导入口的个数及内容根据需要自行定义。例如,实现无人能值守安装时只需要一个入口就够了。

验证PXE网络安装

搭建好PXE远程安装服务器以后,就可以使用客户机进行安装测试了。对于新购买的服务器或PC裸机,一般不需要额外设置,若要为已有系统的主机重装系统,则可能需要修改BIOS设置,将“BOOT FIRST”改为“NETWORK ”或“LAN”,然后重启主机,若使用vmware创建的虚拟机进行测试,虚拟机内存至少需要2GB,否则在启动安装时会报错。

如果服务器配置正确,网络连接,PXE支持等都没有问题,则客户机重启后将自动配置IP地址,然后从TFTP服务器中获取引导程序pxelinux,0,并根据引导菜单配置意提示用户指定启动入口,如图6,1所示。

在提示子串“boot”后直接按enter键(或执行“auto”命令),将会进入默认的图形安装入口,若执行“linux text”命令,则进入文本安装入口,若执行“linux rescue”命令,则进入救援模式。

直接按neter键确认后将自动通过网络下载安装文件,并进入图形化安装程序界面,如图6,2所示。若能够成功到达这一步,说明PXE网络安装基本成功。

实现kickstart无人值守安装

上一节介绍了通过PXE技术远程安装centos7系统的方法,安装介质不在受限于光盘,移动硬盘等设置,大大提高了系统安装的灵活性,然而,安装期间仍需要手动选择语言,键盘类型,指定安装源等一系列交互操作,当需要批量安装时非常不方便。

本届将进一步学习如何实现无人值守自动安装,通过使用kickstart工具配置安装应答文件,自动完成安装过程中的各种设置,从而无须手动干预,提高网络装机效率。

准备安装应答文件:

在centos7系统中安装system-config-kickstart工具之后,即可通过图形化向导工具来配置安装应答文件。

如果用户对自动应答文件的配置比较熟悉,也可以直接编辑centos7安装后自动创建的应答文件(/root/anaconda-ks.cfg),根据需要适当修订后使用。

1,配置安装应答参数

通过桌面菜单“应用程序》系统工具》kickstart”即可打开“kickstart配置程序”窗口。

在“kickstart配置程序”窗口中,可以针对基本配置,安装方法,引导装载程序选项,分区信息,网络配置等各种安装设置进行指定,如图所示。

(1)基本配置及安装方法

“基本配置”可参考图6,3来指定。例如,将默认语言设定为“中文(简体)”,时区设为“Asia/shanghai”,根口令设为“pwd123”,高级配置中勾选“安装后重启”。

在“安装方法”界面中,应正确指定centos7的安装放大,如图6,4所示。若有用户验证信息也需一并指定。在“引导装载程序选项”界面中,选择安装新引导装载程序。

(2)分区信息

在“分区信息”界面中,需正确规划硬盘分区方案。例如,可划分一个500MB的/boot分区,4GB的/home分区,2GB的swap分区,将剩余空间划分给根分区,如图所示。

3)网络配置及防火墙配置

在“网络配置”界面中,添加一个网络设备“ens33”,将网络类型设为“DHCP”。

在“防火墙配置”界面中,可以选择禁用SElinux,禁用防火墙。

(4)软件包选择

centos7系统开始不在提供软件包的选择,如图6,6所示。如果需要安装软件包,可以根据需要将/root/anaconda-ks.cfg的软件包安装脚本复制到ks.cfg文件中,只需要复制%packages到%end部分即可,在%packages到%end之间,包含以@开头的软件包列表,将不需要的软件包删除,剩下的就是系统会自动安装的软件包。例如,仅保留以下内容即为采用最小化安装。

(5)安装脚本

在“预安装脚本”界面,“安装后脚本”界面中,可以分别添加在安装前,安装后自动运行的可执行语句。此项设置是服务器的自动化配置变得更加容易。例如。可以使客户机在完成安装后自动设置YUM软件仓库,如图6,7所示。需要注意的是,应确保所编写的代码能够正确执行,以免安装失败。

(6)其他信息

若没有特殊需求,在“验证”界面,“显示配置”界面中,保持默认设置就可以了。

2,保存自动应答文件 保存到/var/ftp中

选择“kickstart配置程序“窗口的”文件“》”保存“命令,指定目标文件夹,文件名,将配置好的应答参数保存为文本文件,如/root/ks.cfg。以后若要修改此应答配置,可以在”kickstart配置程序“窗口中打开进行调整,或者使用vi等文本编辑工具进行修改。

实现批量自动装机

有了自动安装的应答文件后,只要将其放置PXE安装服务器的FTP目录下,并适当修改引导菜单,就可以实现基于网络的批量自动装机了。

1,启用自动应答文件

在PXE远程安装服务器中,将上一节建立的应答文件复制到/var/ftp/centos7目录下,使客户机能够通过ftp://192.168.4.254/centos7/ks.cfg访问,然后编辑引导菜单文件default,添加ks引导参数以制定ks。cfg应答文件的URL路径。

2,验证无人值守安装

启用自动应答安装之后,当客户机每次以PXE方式引导时,将自动下载ks.cfg应答配置文件,然后根据其中的设置安装centos7系统,而无须手工干预,如图6,8所示,这样就可以同时为多台客户机安装系统了。

客户机安装完成以后,检查其YUM软件仓库配置,可以发现已经按照“安装后脚本”的设置自动建立了/etc/yum.repos,d/centos7.repo文件。

注意:如果是在vmware虚拟机环境下,需要禁用vmware的dhcp功能,否则安装文件将无法加载。

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

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

相关文章

实现跑马灯

目录 一 设计原型 二 后台源码 一 设计原型 二 后台源码 namespace 跑马灯 {public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){Color[] colors { Color.Red, Color.Green, Color.Yellow };T…

Java集合框架源码分析:LinkedList

文章目录 一、LinkedList特性二、LinkedList底层数据结构三、LinkedList继承关系参考: 一、LinkedList特性 特性描述是否允许为空允许是否允许重复数据允许是否有序有序是否线程安全非线程安全 二、LinkedList底层数据结构 LinkedList同时实现了List接口和Deque接…

【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第十一章)模拟波形实验例程说明

本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处(www.meyesemi.com) 适用于板卡型号: 紫光同创PG2L50H_MBG324开发平台(盘古PGX-Nano) 一:…

哈希的基本原理

目录 一.哈希概念 二.哈希冲突 三.哈希函数 四.哈希冲突解决 一.闭散列(开放寻址法) ①插入: ②查找: ③删除: 代码测试: 二.开散列(拉链法) ①插入: ②查找: ③删除: 代码测试&a…

推荐一个Python的前端框架Streamlit

WHY,为什么要用Streamlit 你是不是也想写一个简单的前端界面做些简单的展示和控制,不想写html、css、js,也用不到前后端分离,用不到特别复杂的Flask、Django等,如果你遇到类似这样的问题,我推荐你试试Stre…

LSM-Tree数据结构原理

LSM-Tree树原理 什么是LSM-Tree LSM-Tree 即 Log Structrued Merge Tree,这是一种分层有序,硬盘友好的数据结构。核心思想是利用磁盘顺序写性能远高于随机写。 LSM-Tree 并不是一种严格的树结构,而是一种内存磁盘的多层存储结构。HBase、L…

c++中string的用法

STL的简介 一.什么是STL二.STL的六大组件2.1仿函数2.2空间配置器2.3 算法2.4 迭代器2.5容器2.6配置器 三.string类3.1string类3.2string类的常用接口说明代码示例运行结果 3.3string类对象的容量操作代码示例sizelengthcapcityempty resizereverse 3.4string类对象的访问及遍历…

LVGL开发教程-按钮Button

系列文章目录 知不足而奋进 望远山而前行 目录 系列文章目录 文章目录 前言 1. 普通Button 2.可选中Button 3.按钮事件处理 总结 前言 在图形用户界面(GUI)开发中,按钮(Button)是用户与程序交互的重要组件之一…

目标检测数据集 - PCB板表面缺陷检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍:PCB 板表面缺陷检测数据集,真实采集高质量 PCB 板表面含缺陷图片数据,数据集含多款不同 PCB 板高清表面图片数据,包括俯拍正拍、旋转拍摄姿态。数据标注标签包括 missing_hole、mouse_bite、open_circuit、short、spur…

6.17继承

面向对象的特征:封装,继承,多态 使用背景:比如说在动物类底下可以有带毛的动物,带毛的动物符合所有的动物的特征,只是在这个基础上再继续添加一些特征 命名:原有类型称为“基类”或“父类”&a…

Springboot集成Mybatisplus过程

这里写目录标题 背景步骤明确标准实操过程创建好数据库,命名好(这里会考察一个命名规范),表的命名,中间使用下划线隔离开。使用idea创建Springboot项目(注意版本问题)使用插件生成代码常用代码p…

Nuxt3 实战 (十):使用 Supabase 实现 RESTful 风格 API 接口

前言 本篇文章我们来使用 Supabase 实现 RESTful 风格的 API 接口,以此来实现网站分类和子站点的 CURD 功能。 表设计 这里需要用到两张表: ds_categorys:存储网站分类 列名类型备注iduuid主键,分类 idnametext分类名称desct…

重生之 SpringBoot3 入门保姆级学习(22、场景整合 Swagger 接口文档)

重生之 SpringBoot3 入门保姆级学习&#xff08;22、场景整合 Swagger 接口文档&#xff09; 6.2 Swagger 接口文档 6.2 Swagger 接口文档 1、将 starter 导入 Maven 官网 https://springdoc.org/<dependency><groupId>org.springdoc</groupId><artifact…

学习记录之数学表达式(5)

文章目录 十、线性回归10.1 示例10.2 拟合10.3 推导10.4 岭回归10.5 作业 十一、Logistic回归11.1 分割超平面11.2 点到直线的距离11.3 sigmoid函数11.4 优化目标11.5 求解11.6 作业 十、线性回归 线性回归是一个常用的机器学习算法&#xff1b; 10.1 示例 表 1.单变量的股价预…

格雷母线技术革新:推动斗轮堆取料机进入精准操作时代

随着工业4.0时代的到来&#xff0c;智能化、自动化已成为工业发展的必然趋势。特别是在港口、电力、冶金等行业中&#xff0c;散料装卸机械的智能化水平直接关系到整个生产流程的效率与安全。斗轮堆取料机作为这些行业中的关键设备&#xff0c;其操作方式的革新显得尤为重要。 …

Unity OpenCVForUnity 安装和第二个案例详解 <二>

目录 一、前言 二、场景介绍 1.WebCamTextureToMatExample脚本 2.FpsMonitor脚本 三、 结构体Scaler 四、找到相机并使用 1.相机的启用 2.格式转换 a.把webCamTexture转换成Mat b.把Mat转换成Texture2D 五、脚本组合 六、作者的碎碎念 一、前言 第二个案例&#xf…

leetcode (top100)盛最多水的容器

题目&#xff1a; 题解&#xff1a; 第一种可行的方案&#xff1a; 设置左指针指向第一条线&#xff0c;设置右指针指向最后一条线。每次向中间移动两条线中最短的一条&#xff0c;计算移动过程中最大接水量。 本题可以看出影响接水量的有两个因素&#xff0c;两条线的距离&…

空间复杂度的相关概念

1. 空间复杂度 空间复杂度&#xff08;space complexity&#xff09;用于衡量算法占用内存空间随着数据量变大时的增长趋势。 统计哪些空间&#xff1a; ● 暂存数据&#xff1a;用于保存算法运行过程中的各种常量、变量、对象等。 ● 栈帧空间&#xff1a;用于保存调用函数…

PyTorch -- RNN 快速实践

RNN Layer torch.nn.RNN(input_size,hidden_size,num_layers,batch_first) input_size: 输入的编码维度hidden_size: 隐含层的维数num_layers: 隐含层的层数batch_first: True 指定输入的参数顺序为&#xff1a; x&#xff1a;[batch, seq_len, input_size]h0&#xff1a;[batc…

Ubuntu 24.04安装zabbix7.0.0图形中文乱码

当zabbix安装完成后&#xff0c;设置中文界面时&#xff0c;打开图形&#xff0c;中文内容会显示方框乱码&#xff0c;是因为服务器字体中没有相关的中文字体&#xff0c;需要更换。 1、找到中文字体&#xff0c;可以在网络上下载《得意黑》开源字体&#xff0c;也可以在windo…