当前位置: 首页 > news >正文

PXE自动化安装:轻松部署Rocky9

利用 PXE 实现自动化系统部署

PXE介绍

PXE:Preboot Excution Environment,预启动执行环境,是由Intel公司研发,基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,可以引导和安装Windows,linux等多种操作系统。

PXE启动工作原理

利用PXE实现自动化安装流程

  1. Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将启动文件pxelinux.0的所在TFTP服务器地址信息一并传送给Client。
  2. Client向TFTP服务器发送获取pxelinux.0请求消息,TFTP服务器接收到消息之后,向Client发送pxelinux.0大小信息,试探Client是否满意,当TFTP收到Client发回的同意大小信息之后,正式向Client发送pxelinux.0。
  3. Client执行接收到的pxelinux.0文件,并利用此文件启动。
  4. Client向TFTP 服务器发送请求针对本机的配置信息文件(在TFTP 服务器的pxelinux.cfg目录下),TFTP服务器将启动菜单配置文件发回Client,继而Client根据启动菜单配置文件执行后续操作。
  5. Client根据启动菜单配置文件里的信息,向TFTP发送Linux内核和initrd文件请求信息,TFTP接收到消息之后将内核和initrd文件发送给Client。
  6. Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件系统。
  7. Client启动Linux内核,加载相关的内核参数。
  8. Client通过内核参数下载kickstart文件,并根据kickstart文件里的安装信息,下载安装源文件进行自动化安装。

在Rocky9 上实现PXE自动化安装rocky9

安装前准备
关闭防火墙和SELINUX,DHCP服务器静态IP。
网络要求:关闭Vmware软件中的DHCP服务,基于NAT模式。
示例

[root@Rocky ~]# yum install dhcp-server tftp-server httpd syslinux-nonlinux -y[root@Rocky ~]# systemctl enable --now httpd tftp dhcpd

配置dhcp服务

[root@Rocky ~]# vim /etc/dhcp/dhcpd.confoption domain-name"example.org";option domain-name-servers223.5.5.5,114.114.114.114;default-lease-time600;max-lease-time7200;log-facility local7;subnet192.168.101.0 netmask255.255.255.0{range192.168.101.100192.168.101.200;option routers192.168.101.2;next-server192.168.101.19;filename"pxelinux.0";}

准备相关目录

[root@Rocky ~]# mkdir -pv /var/www/html/rocky/9/os/x86_64/[root@Rocky ~]# mount /dev/sr0 /var/www/html/rocky/9/os/x86_64/

准备kickstart文件

[root@Rocky ~]# mkdir /var/www/html/ks/[root@Rocky ~]# vim a.cfg# Network informationnetwork--bootproto=dhcp--device=ens160--ipv6=auto--activate# Use CDROM installation mediacdrom %packages# Use CDROM installation mediacdrom %packages network--hostname=Rocky# Use CDROM installation mediacdrom network--hostname=Rocky# Use CDROM installation media%packages @^minimal-environment @standard %end# Run the Setup Agent on first bootfirstboot--enable# Generated using Blivet version 3.6.0ignoredisk --only-use=sda# Partition clearing informationclearpart--none--initlabel# Disk partitioning informationpart /data--fstype="xfs"--ondisk=sda--size=51200part /--fstype="xfs"--ondisk=sda--size=102400part /boot--fstype="xfs"--ondisk=sda--size=1024part swap--fstype="swap"--ondisk=sda--size=2048# System timezonetimezone Asia/Shanghai--utc# Root passwordrootpw--iscrypted$6$aGXglqz1YsyoNR49$MGdIO5Yn36hzTYDXFxAcR2Xi4c5FHOMuuvEVGlIffS9pfkhs5z3UIv24BKh2vP9tVCOWaNhGV7M/ec.G6HCmf. user--name=r--password=$6$hcGXX9Lxf1ao458C$WJUKYXyg1N1auKL1nYBpYWnVCFURsakFcTz5mk7lEXPbABwUkYPG.k0VDm4LcGqX8NjqV9ABDFseCJXCq6AQ.1--iscrypted--gecos="r"%post# 关闭防火墙systemctl disable firewalld systemctl stop firewalld# 禁用 SELinuxsed-i's/^SELINUX=enforcing$/SELINUX=disabled/'/etc/selinux/config setenforce0%end"a.cfg"58L, 1491B written[root@Rocky ~]# cp a.cfg /var/www/html/ks/rocky.cfg

准备PXE启动相关文件

[root@Rocky ~]# mkdir /var/lib/tftpboot/rocky9[root@Rocky ~]# cp /var/www/html/rocky/9/os/x86_64/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/rocky9/[root@Rocky ~]# cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/[root@Rocky ~]# cp /var/www/html/rocky/9/os/x86_64/isolinux/{ldlinux.c32,libcom32.c32,libutil.c32} /var/lib/tftpboot/[root@Rocky ~]# mkdir /var/lib/tftpboot/pxelinux.cfg[root@Rocky ~]# cp /var/www/html/rocky/9/os/x86_64/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default[root@Rocky ~]# tree /var/lib/tftpboot//var/lib/tftpboot/ ├── ldlinux.c32 ├── libcom32.c32 ├── libutil.c32 ├── menu.c32 ├── pxelinux.0 ├── pxelinux.cfg │ └── default └── rocky9 ├── initrd.img └── vmlinuz2directories,8files

准备启动菜单文件

[root@Rocky ~]# vim /var/lib/tftpboot/pxelinux.cfg/defaultdefault menu.c32timeout600menu title Install CentOS Linux label linux9 menu label Auto Install CentOS Linux ^9 kernel rocky9/vmlinuz appendinitrd=rocky9/initrd.imgks=http://192.168.101.19/ks/rocky.cfg label manual menu label ^Manual Install CentOS Linux9.0kernel vmlinuz appendinitrd=initrd.imginst.repo=http://192.168.101.19/rocky/9/os/x86_64/ label rescue menu label ^Rescue a CentOS Linux system9kernel rocky9/vmlinuz appendinitrd=rocky9/initrd.imginst.repo=http://192.168.101.19/rocky/9/os/x86_64/ rescue labellocalmenu default menu label Boot from ^local drive localboot 0xffff

测试客户端基于PXE实现自动安装

新准备一台主机,设置网卡引导,可看到看启动菜单,并实现自动安装
注意:VMware workstation 对于不同的CentOS 版本,生成的虚拟机的硬件并不兼容。









http://www.jsqmd.com/news/466294/

相关文章:

  • NAD+ NMN十大品牌排名榜2026年NMN吸收率最高口碑好的抗衰优选榜首盼生派 - 速递信息
  • 输入网址,几分钟搞定专业宣传视频
  • HAL STM32 基础工程创建点灯
  • 龙虾社交上线40天被Facebook收购!俩文科创始人加入超级智能实验室
  • 2026年惠州韧达纳米售后服务怎么样,珠三角地区性价比高的派瑞林镀膜厂家有哪些 - 工业设备
  • 虚拟机安装(VM)(centos)使用linux
  • VueDevTools:快速定位源码路径
  • 被AI编程折磨的苦不堪言:一边喊真香,一边想砸键盘
  • 北京信号灯厂家哪家值得信赖
  • 轻社交社区交流微信小程序源码带后台
  • -------------------
  • 2025 年成为智能体 AI 专家的学习路线:从基础到实战
  • Sharepoint Graph API Edm.DateTimeOffset 类型格式
  • 天津施德科技有实力吗,2026年工业自动化服务企业推荐哪家 - 工业品牌热点
  • 高速互连信号完整性解析:带宽、损耗、干扰与匹配
  • OpenClaw免费自动部署脚本-docker版
  • 网络安全是黄金赛道吗?2026年行业真相:缺口480万,薪资24万,小白入行指南
  • 普通三相异步电动机如何改单相?
  • Oozie任务失败告警机制
  • 2026年比较好的气膜料棚工厂推荐:气膜仓库/气膜体育馆专业制造厂家推荐 - 行业平台推荐
  • 西门子200 SMART与昆仑通态锅炉换热站程序实例:模拟量读取、自动切换与Modbus通讯控制
  • 基于RF随机森林机器学习算法的回归预测模型MATLAB代码 基于RF随机森林机器学习算法的回归预测模型MATLAB代码实现了一个回归任务的决策树集成模型。
  • 2026四川省债权维护与经济纠纷防范白皮书:五大实战派律所与精英律师推荐 - 博客万
  • A代码的一部分,B代码又含有A类型属性 这就是一个编译死循环 . 其他循环引用的例子 链表结构只有一个类型也是类型循环引用 A-B- ...
  • 医美填充好学吗?从0到1,新手学填充的完整路径拆解
  • 2026年肇庆地区锅炉安装公司怎么收费,大型公司全梳理 - mypinpai
  • PMOS NMOS 导通条件(增强型,最常用)
  • 车载摄像头接口ESD二极管选型推荐
  • 2026运维监控选型大揭秘:谁能成为全栈观测需求的“天选之系”?
  • 2026安徽正微网络产品怎么样,使用费用多少钱 - 工业推荐榜