小阿轩yx-PXE 高效批量网络装机

news2025/3/17 1:10:23

小阿轩yx-PXE 高效批量网络装机

部署PXE远程安装服务

PXE 概述

PXE(Preboot eXcution Environment,预启动执行环境,在操作系统之前运行)技术的网络装机方法,是由 Intel 公司开发的网络引导技术,工作在 Client/Server 模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统

PXE需要较高的带宽

PXE

1:iso中系统镜像文件放到FTP

2:FTP

3:DHCP动态主机配置协议:一个协议(rarp反向地址解析)

  • 分地址
  • 指定tftp的ip
  • 指定pxelinux.0(引导程序syslinux)

4:TFTP简单文件传输协议(精简,比FTP更简便)

先使用TFTP下载对应的

  • 内核文件、初始化镜像文件
  • 引导程序、引导配置文件

服务端 

  • 运行DHCP服务,用来分配地址、定位引导程序
  • 运行TFTP服务,提供引导程序下载

客户端

  • 网卡支持PXE协议
  • 主板支持网络引导

对于无盘工作站(在网络中的一个工作站),服务器端需要提供可运行的完整系统镜像;

对于远程安装,只要提供引导程序和安装源就可以了

批量部署方法具备三个优点

  • 规模化:同时装配多台服务器
  • 自动化:安装系统、配置各种服务
  • 远程实现:不需要光盘、U盘等安装介质
搭建PXE网络体系必须满足的前提条件
  • 客户机的网卡支持PXE协议(集成BOOTROM芯片),且主板支持网络引导
  • 网路中有一台DHCP服务器为客户机自动分配地址、指定引导文件位置
  •  服务器通过TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载
  •  第一个条件实际上是硬件要求
  • 目前绝大多数服务器和大多数 PC 都能够提供此支持,只需在 BIOS 设置中允许从 Network LAN 启动即可

搭建PXE远程安装服务器

准备CentOS 7 安装源

[root@localhost ~]# mkdir /var/ftp/centos7
[root@localhost ~]# cp -rf /media/cdrom/* /var/ftp/centos7/
[root@localhost ~]# systemctl start vsftpd

安装并启用 TFTP 服务

  • 安装tftp-server软件包,启用tftp服务
  • 配置文件位于/etc/xinetd.d/tftp
[root@localhost ~]# yum -y install tftp-server
[root@localhost ~]# vim /etc/xinetd.d/tftp
service tftp
{ 
    …… //省略部分信息
    protocol = udp //TFTP 采用 UDP 传输协议
    server = /usr/sbin/in.tftpd
    server_args = -s /var/lib/tftpboot //指定 TFTP 根目录
    disable = no …… //省略部分信息
}
[root@localhost ~]# systemctl start tftp
[root@localhost ~]# systemctl enable tftp
Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to
/usr/lib/systemd/system/tftp.socket.

准备 Linux 内核、初始化镜像文件

[root@localhost ~]# cd /media/cdrom/images/pxeboot
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot

准备 PXE 引导程序

[root@localhost ~]# yum -y install syslinux
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

安装并启用 DHCP 服务

[root@localhost ~]# yum -y install dhcp
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf 

…… //省略部分信息

subnet 192.168.4.0 netmask 255.255.255.0 {
    option routers 192.168.4.254;
    option subnet-mask 255.255.255.0;
    option domain-name "bdqn.com";
    option domain-name-servers 192.168.4.254,202.106.0.20;
    default-lease-time 21600;
    max-lease-time 43200;
    range 192.168.4.100 192.168.4.200;
    next-server 192.168.4.254; //指定 TFTP 服务器的地址
    filename "pxelinux.0"; //指定 PXE 引导程序的文件名
}

    [root@localhost ~]# systemctl start dhcpd
    [root@localhost ~]# systemctl enable dhcpd
    Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to
    /usr/lib/systemd/system/dhcpd.service.

配置启动菜单文件

[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto //指定默认入口名称
prompt 1 //1 表示等待用户控制
label auto
    kernel vmlinuz
    append initrd=initrd.img method=ftp://192.168.4.254/centos7
label linux text
    kernel vmlinuz
    append text initrd=initrd.img method=ftp://192.168.4.254/centos7

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

验证 PXE 网络安装

  • 为系统主机重装系统

    • 修改BIOS设置,“Boot First”设为“NETWORK”“LAN”,然后重启主机

    • 自动配置IP地址,并指定CentOS 7 安装源

    • 其余过程与本地安装相同

    • 若用VMware虚拟机测试,虚拟内存至少2G

实现 Kickstart 无人值守安装

Kickstart概述

无人值守自动安装

  • Kickstart 工具配置安装应答文件,预先定义好各种安装设置

  • 免去交互设置过程,从而实现全自动化安装

准备安装应答文件 

应答文件的来源

  • 在CentOS 7 安装system-config-kickstart工具
  • 编辑应答文件 /root/anaconda-ks.cfg

使用system-config-kickstart工具创建新的应答文件

  • 需要安装system-config-kickstart软件包

修改各项来对应答文件进行配置

执行各种后续配置任务的脚本语句

保存自动应答文件

[root@localhost ~]# grep -v ^# /root/ks.cfg
install

keyboard 'us' 
rootpw --iscrypted $1$4L6b0cut$W3mlVspKjatMK/g5vrTct/
url --url="ftp://192.168.4.254/centos7"
lang zh_CN
firewall --disabled
auth --useshadow --passalgo=sha512
graphical
firstboot --disable
selinux --disabled

network --bootproto=dhcp --device=ens33
reboot
timezone Asia/Shanghai
bootloader --location=mbr
clearpart --all
part /boot --fstype="xfs" --size=500
part /home --fstype="xfs" --size=4096
part swap --fstype="swap" --size=2048
part / --fstype="xfs" --grow --size=1

%post --interpreter=/bin/bash
rm -f /etc/yum.repos.d/* 
echo -e
'[base]\nname=CentOS7.3\nbaseurl=ftp://192.168.4.254/centos7\nenabled=
1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7'>/e
tc/yum.repos.d/centos7.repo
%end

%packages //%packages 到%end 部分是复制 anaconda-ks.cfg 中的软件包安装脚本
@^minimal

实现批量自动装机

启用自动应答文件

[root@localhost ~]# cp /root/ks.cfg /var/ftp/ks.cfg
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0 //0 表示不等待用户控制
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.4.254/centos7
ks=ftp://192.168.4.254/ks.cfg

验证无人值守安装

  • 将客户机以PXE方式引导
  • 系统会自动完成安装,并配置好软件仓库
  • 整个安装过程无需手动干预

手动 PXE 部署

服务端命令

[root@localhost ~]# mkdir /media/cdrom/                    
# 创建一个目录来挂载 CDROM
[root@localhost ~]# mount /dev/cdrom /media/cdrom/         
# 挂载 CDROM 到刚刚创建的目录
[root@localhost ~]# mkdir /var/ftp/centos7/               
# 创建一个目录来存放 CentOS 7 的文件
[root@localhost ~]# cp -rf /media/cdrom/* /var/ftp/centos7/  
# 将 CDROM 中的文件复制到 CentOS 7 目录中
[root@localhost ~]# cd /etc/yum.repos.d/                 
# 切换到存储库配置文件的目录
[root@localhost yum.repos.d]# mkdir bak                          
# 创建备份目录
[root@localhost yum.repos.d]# mv C* bak/                         
# 移动以 'C' 开头的文件到备份目录
[root@localhost yum.repos.d]# cp bak/CentOS-Media.repo ./
# 复制备份目录中的 CentOS-Media.repo 到当前目录
[root@localhost yum.repos.d]# vim CentOS-Media.repo
# 使用 vim 编辑 CentOS-Media.repo 文件
# enabled=1                                                      
# 启用该仓库,改这一个就行了
[root@localhost ~]# yum -y install vsftpd dhcp syslinux tftp-server  
# 使用 yum 安装 vsftpd、dhcp、syslinux 和 tftp-server 软件包
[root@localhost yum.repos.d]# vim /etc/xinetd.d/tftp  
# 使用 vim 编辑 TFTP 服务配置文件,修改  disable = no
[root@localhost yum.repos.d]# systemctl start tftp  
# 启动 TFTP 服务
[root@localhost yum.repos.d]# cd /media/cdrom/images/pxeboot/  
# 切换到 CDROM 中 PXE 引导文件的目录
[root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/  
# 将 initrd.img 和 vmlinuz 文件复制到 TFTP 服务器的目录中
[root@localhost pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/  
# 将 pxelinux.0 文件复制到 TFTP 服务器的目录中
[root@localhost pxeboot]# ll /var/lib/tftpboot/  
# 显示 TFTP 服务器目录中的文件列表
# -rw-r--r--. 1 root root 52584760 4月  12 22:13 initrd.img
# -rw-r--r--. 1 root root    26759 4月  12 22:15 pxelinux.0
# -rwxr-xr-x. 1 root root  6639904 4月  12 22:13 vmlinuz
[root@localhost pxeboot]# vim /etc/dhcp/dhcpd.conf 
subnet 192.168.254.0 netmask 255.255.255.0 {
  range 192.168.254.13 192.168.254.254;
  option domain-name-servers 192.168.254.2;
  option domain-name "test.com";
  option routers 192.168.60.2;
  option broadcast-address 192.168.60.255;
  default-lease-time 21600;
  max-lease-time 43200;
  next-server 192.168.254.12;
  # 指定了PXE启动时TFTP服务器的IP地址
  filename "pxelinux.0";
  # 指定了PXE启动时使用的引导文件名
}
# 启用 DHCP 服务,使其在系统启动时自动启动
[root@xuanzi pxeboot]# systemctl enable dhcpd
# 启动 DHCP 服务
[root@xuanzi pxeboot]# systemctl start dhcpd
# 使用 netstat 命令查看当前系统中的 DHCP 相关端口
[root@xuanzi pxeboot]# netstat -anpu | grep dhcp
# 创建 PXE 引导配置文件存放目录
[root@xuanzi pxeboot]# mkdir /var/lib/tftpboot/pxelinux.cfg
# 使用 vim 编辑 PXE 引导的默认配置文件
[root@xuanzi pxeboot]# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 1
label auto
    kernel vmlinuz
    append initrd=initrd.img method=ftp://192.168.254.12/centos7
label linux text
    kernel vmlinuz
    append text initrd=initrd.img method=ftp://192.168.254.12/centos7
label linux rescue
    kernel vmlinuz
    append rescue initrd=initrd.img method=ftp://192.168.254.12/centos7
# 在最终安装之前,请一定确保 以下三个服务均已启动
[root@localhost pxeboot]# systemctl restart vsftpd
[root@localhost pxeboot]# systemctl restart tftp
[root@localhost pxeboot]# systemctl restart dhcpd

 然后,新建一个 CentOS7 系统,内存至少 2G,并且关闭 VM 自带 DHCP 服务

 自动 PXE 部署安装

服务端命令

# 安装 system-config-kickstart 自动生成脚本文件
[root@localhost pxelinux.cfg]# yum -y install system-config-kickstart
# 打开 system-config-kickstart
[root@localhost ~]# system-config-kickstart

然后按照下图步骤安装

 

 

 

开机过程

1:按下电源

2:开机自检(bios)

3:按照bios中设置的引导设备进行引导

4:初始化镜像文件

        MBR引导程序

5:内核

应答文件:甲问的东西,乙提前写好放到文件里,就直接是文件回答

小阿轩yx-PXE 高效批量网络装机 

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

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

相关文章

二进制中1的个数c++

题目描述 计算鸭给定一个十进制非负整数 NN&#xff0c;求其对应 22 进制数中 11 的个数。 输入 输入包含一行&#xff0c;包含一个非负整数 NN。(N < 10^9) 输出 输出一行&#xff0c;包含一个整数&#xff0c;表示 NN 的 22 进制表示中 11 的个数。 样例输入 100 …

IS-IS链路状态数据库

原理概述 一个OSPF链路状态数据库是若干条LSA的集合。与此相似&#xff0c;一个IS-IS链路状态数据库是由若干条LSP的集合。与OSPF链路状态数据库不同&#xff0c;IS-IS链路状态数据库有Level-1和Level-2之分。 在IS-IS协议中&#xff0c;每一条LSA都有一条剩余生存时间、一个…

『USB3.0Cypress』FPGA开发(3)GPIF II短包零包时序分析

文章目录 1.时序参数2.FX3_PCLK3.短包和零包3.1短包时序3.2零包ZLP时序 4.传送门 1.时序参数 AN65974文档中明确了操作GPIF II接口时的时序参数&#xff0c;上一篇文章中给出了读写时序图&#xff0c;本篇第二节给出ZLP写周期时序&#xff0c;这里说明相关的时序参数。应该注意…

校园二手书交易|基于SprinBoot+vue的校园二手书交易管理系统(源码+数据库+文档)

校园二手书交易管理系统 目录 基于SprinBootvue的校园二手书交易管理系统 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 3 卖家用户功能模块 4 用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八…

WPF之容器标签之Canvas布局标签

Canvas: 定义一个区域&#xff0c;可在其中使用相对于 Canvas 区域的坐标以显式方式来定位子元素。 实例 可以在子标签使用Canvas属性设置定位 <Canvas Width"500" Height"300"><StackPanel Width"100" Height"100"Backgro…

基于51单片机的火灾检测设计(仿真+程序+原理图+论文报告+讲解视频)

基于51单片机的火灾检测设计 基于51单片机的火灾检测设计&#xff08;仿真程序原理图论文报告&#xff09;功能要求仿真图&#xff1a;原理图&#xff1a;源程序&#xff1a;论文/报告&#xff1a;资料清单&#xff1a; 基于51单片机的火灾检测设计&#xff08;仿真程序原理图论…

数据库操作(事务)

描述&#xff1a;事务是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一个整体一起向系统提交或者撤销操作请求&#xff0c;这些操作要么同时成功&#xff0c;要么同时失败 一。事务的操作&#xff1a; 开启事务&#xff1a;star…

Linux入门攻坚——23、DNS和BIND基础入门2

前一篇实践了正向解析服务器的配置使用&#xff0c;如何配置反向解析呢&#xff1f; 反向区域&#xff1a; 区域名称&#xff1a;网络地址反写.in-addr.arpa. 192.168.138. --> 138.168.192.in-addr.arpa. (1)定义区域&#xff1a; zone "ZONE_NAME" I…

Unity实现TableView

基于Scrollview封装的TableView&#xff0c;实现对视野外的Cell回收利用&#xff0c;减少创建Cell的开销。 核心逻辑如下&#xff1a; /***************************************动态使用cell核心逻辑开始 **************************************///计算所有cell的坐标信息 …

《python编程从入门到实践》day38

# 昨日知识点回顾 定义、迁移模型Entry # 今日知识点学习 18.2.7 Django shell 每次修改模型后&#xff0c;看到重启后的效果需要重启shell&#xff0c;退出shell会话Windows系统按ctrlZ或者输入exit() 18.3 创建页面&#xff1a;学习笔记主页 创建页面三阶段&#xf…

【Windows系统】解决Intel 6代CPU安装win7系统过程中无法操作键盘鼠标的问题

问题 微软表示&#xff0c;从 2016 年 7 月 17 日起&#xff0c;新的 Intel、AMD 和Qualcomm 处理器将仅支持 Windows 10&#xff0c;不再支持 Windows 7 和 8.1。因此&#xff0c;Intel 6代以后的CPU因为没有USB驱动无法完成win7系统的安装。 下文核心思想是通过老毛桃PE系统…

AI PC 的曙光:微软大胆出击与苹果竞争

AI PC 的曙光&#xff1a;微软大胆出击与苹果竞争 AI PC 的曙光&#xff1a;微软大胆出击与苹果竞争 概述 微软已正式进入 AI PC 时代&#xff0c;并且毫不避讳地直接向苹果的 MacBook 发起攻击。随着代号为“Copilot”的笔记本电脑的推出&#xff0c;微软准备彻底改变我们与…

Android 实现竖排文本(垂直方向显示)

Android 实现竖排文本-垂直方向显示 前言效果图代码实现方式一 Custom View1. 自定义视图 VerticalTextView2. 在xml布局文件中使用3. 设置文本内容 方式二 使用 TextView 的 rotation属性方式三 使用带有跨距文本的TextView1. 自定义视图 VerticalTextView2. 在xml布局文件中使…

ML307R OpenCPU UART使用

一、串口使用流程图 二、串口相关函数介绍 三、实现串口收发 一、串口使用流程图 OneMO ML307R模组提供了2路UART给开发者用于通讯开发&#xff0c;以及1路DBG UART用于log的打印。UART Demo示例可以在SDK&#xff1a;examples\uart\src\cm_demo_uart.c中查看。 串口使用流…

视频号小店的保证金是多少钱?2024最新收费标准,一篇了解!

哈喽~我是电商月月 现实社会&#xff0c;干什么都需要交钱&#xff0c;就连上班&#xff0c;路费也得掏钱 想要入驻视频号小店&#xff0c;在视频号里卖货赚钱&#xff0c;就要缴纳类目保证金 那到底要缴多少钱呢&#xff1f; 今天&#xff0c;月月就把最新的收费标准分享给…

Android Low Storage机制之DeviceStorageMonitorService

一、Android 版本 Android 13 二、low storage简介(DeviceStorageMonitorService) 设备存储监视器服务是一个模块&#xff0c;主要用来&#xff1a; 1.监视设备存储&#xff08;“/ data”&#xff09;。 2.每60秒扫描一次免费存储空间(谷歌默认值) 3.当设备的存储空间不足…

Ollama:一个在本地部署、运行大型语言模型的工具

Ollama&#xff1a;一个在本地部署、运行大型语言模型的工具 Ollama部署、运行大型语言模型概述安装配置Ollama命令模型库使用示例自定义模型从GGUF导入自定义提示从PyTorch或Safetensors导入 开启服务REST API卸载Ollama One-API概述One-API管理本地模型 Open WebUI概述Docker…

VUE3 学习笔记(十)查看vue版本

命令&#xff1a; npm list vue(空) (在项目的根目录下执行以下命令即可查看项目所使用的vue版本) npm list vue version(空) npm info vue (全局查看vue版本号&#xff0c;详细) npm list vue -g(全局查看vue版本号&#xff0c;简单) npm view vue version(查看项目依赖的vue…

Jeecg | 如何解决 ERR Client sent AUTH, but no password is set 问题

最近在尝试Jeecg低代码开发&#xff0c;但是碰到了超级多的问题&#xff0c;不过总归是成功运行起来了。 下面说说碰到的最后一个配置问题&#xff1a;连接redis失败 Error starting ApplicationContext. To display the conditions report re-run your application with deb…