PXE实现自动批量安装部署操作系统
PXE简介
PXE(Preboot eXecution Environment)是一种在计算机启动时使用网络接口从远程服务器获取操作系统安装和启动信息的技术。通过PXE,计算机可以从局域网中的PXE服务器上下载操作系统安装文件,并进行自动化的操作系统部署或故障排除。由Intel公司开发的PXE网络引导技术工作在Client/Server模式,可以同时装配多台机器,安装系统、配置各种服务,同时不需要光盘、U 盘等安装介质实现远程连接。
kickstart自动安装脚本的作用
在企业中安装多台操作系统时面临的问题
当安装Linux操作系统时,安装过程会需要回答很多关于设定的问题,这些问题必须手动选择,否则无法进行安装。当只安装1台Linux系统,手动选择设定工作量比较轻松;当安装多台Linux,这些设定需要重复多次,这些重复动作是效率低下的操作
如何解决以上问题?
用文件来记录所有安装过程中问题的答案,并让所有需要安装的主机自动读取
以上解决方案中记录系统安装过程中所有问题答案的文件叫kickstart脚本
实验环境:
- RHEL7主机
- 开启主机图形
- 配置网络可用
- 关闭VMware DHCP功能
- 软件仓库能正常工作
如果安装的时候安装了图形界面则输入init 5将图形界面打开;若是没有安装图形界面,则可以使用yum install group "Server with GUI" -y命令下载安装图形界面。


/root/anaconda-ks.cfg此文件是在系统安装好之后自动生成的,这个文件记录了系统在安装过程中的所有设定。
- 安装图形化生成kickstart自动安装脚本的工具
[root@www ~]# yum install system-config-kickstart -y
- 启动图形制作工具
[root@www ~]# system-config-kickstart
- 按照图示更改配置



安装源选择HTTP通过网络分享安装源,现在我们没有网络分享安装源,所以需要自己搭建
- 下载httpd,并启动
[root@www ~]# yum install httpd -y [root@www ~]# systemctl enable --now httpd
- 创建一个符号链接(软链接),在
/var/www/html/目录下创建一个指向/rhel7/目录的软链接。通过创建这个软链接,当访问/var/www/html/时,实际上会访问到/rhel7/的内容[root@www ~]# ln -s /rhel7/ /var/www/html/ [root@www ~]# cd /var/www/html/ [root@www html]# ls rhel7




根据自己的网卡配置,图示为ens33,而我自己的是eth0。




上图为安装后运行的脚本,可以根据自己的需要写运行脚本。


我修改了文件名称为ks1.cfg
4. 编辑ks1.cfg文件
[root@www ~]# vim ks1.cfg


修改完检查是否有语法错误
[root@www ~]# ksvalidator ks.cfg
- 将此自动化安装脚本共享出去
[root@www ~]# cp ks1.cfg /var/www/html/
进入网页进行测试

6. 安装并搭建DHCP服务
安装DHCP服务器为其他服务器提供分配ip的功能
[root@www ~]# yum install dhcpd -y
# 生成配置文件
[root@www ~]# \cp -f /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf# 编写/etc/dhcp/dhcpd.conf配置文件
[root@www ~]# cat /etc/dhcp/dhcpd.conf
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
## option definitions common to all supported networks...
option domain-name "wwwl.org"; #公司域名
option domain-name-servers 114.114.114.114;#对外分发的dns地址default-lease-time 600;
max-lease-time 7200;# Use this to enble / disable dynamic dns updates globally.
#ddns-update-style none;# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.#subnet 10.152.187.0 netmask 255.255.255.0 {
#}# This is a very basic subnet declaration.subnet 172.25.254.0 netmask 255.255.255.0 {range 172.25.254.30 172.25.254.40;#地址池option routers 172.25.254.2;#网关next-server 172.25.254.133;#下一个服务器filename "pxelinux.0";#在next-server上读取的文件
}#重启DHCP
[root@www ~]# systemctl restart dhcpd
[root@www ~]# systemctl enable --now dhcpd
- 测试安装

此处的网址根据自己的写,我配置的为ks=http://172.25.254.133/ks1.cfg

8. 搭建PXE网络安装环境实现服务器自动部署
# 环境需要最基本的程序
[root@www ~]# yum install syslinux.x86
# 共享pxelinux.0数据文件的网络服务
[root@www ~]# yum install tftp-server.x86_64 -y
# tftp服务自启并立即启动
[root@www ~]# systemctl enable --now tftp
# 将镜像中引导 Linux 系统的文件复制到该目录下
[root@www ~]# cp -p /rhel7/isolinux/* /var/lib/tftpboot/
# pxelinux 的主要引导文件复制到这里
[root@www ~]# cp -p /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@www ~]# cd /var/lib/tftpboot/
[root@www tftpboot]# mkdir pxelinux.cfg
# 将该配置文件复制到pxelinux.cfg/default中
[root@www tftpboot]# cp isolinux.cfg pxelinux.cfg/default[root@www tftpboot]# vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
timeout 30 #设置超时时间3sdisplay boot.msg# Clear the screen when exiting the menu, instead of leaving the menu displayed.
# For vesamenu, this means the graphical background is still displayed without
# the menu itself for as long as the screen remains in graphics mode.
menu clear
menu background splash.png
menu title Red Hat Enterprise Linux 7.9
menu vshift 8
menu rows 18
menu margin 8
#menu hidden
menu helpmsgrow 15
menu tabmsgrow 13# Border Area
menu color border * #00000000 #00000000 none# Selected item
menu color sel 0 #ffffffff #00000000 none# Title bar
menu color title 0 #ff7ba3d0 #00000000 none# Press [Tab] message
menu color tabmsg 0 #ff3a6496 #00000000 none# Unselected menu item
menu color unsel 0 #84b8ffff #00000000 none# Selected hotkey
menu color hotsel 0 #84b8ffff #00000000 none# Unselected hotkey
menu color hotkey 0 #ffffffff #00000000 none# Help text
menu color help 0 #ffffffff #00000000 none# A scrollbar of some type? Not sure.
menu color scrollbar 0 #ffffffff #ff355594 none# Timeout msg
menu color timeout 0 #ffffffff #00000000 none
menu color timeout_msg 0 #ffffffff #00000000 none# Command prompt text
menu color cmdmark 0 #84b8ffff #00000000 none
menu color cmdline 0 #ffffffff #00000000 none# Do not display the actual menu unless the user presses a key. All that is displayed is a timeout message.menu tabmsg Press Tab for full configuration options on menu items.menu separator # insert an empty line
menu separator # insert an empty linelabel linuxmenu label ^Install Red Hat Enterprise Linux hahahahahaah #设置安装时显示的字符menu default #安装时默认选择这个选项kernel vmlinuzappend initrd=initrd.img repo=http://172.25.254.133/rhel7 ks=http://172.25.254.133/ks1.cfg quiet #静默label checkmenu label Test this ^media & install Red Hat Enterprise Linux 7.9kernel vmlinuzappend initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.9\x20Server.x86_64 rd.live.check quietmenu separator # insert an empty line# utilities submenu
menu begin ^Troubleshootingmenu title Troubleshootinglabel vesamenu indent count 5menu label Install Red Hat Enterprise Linux 7.9 in ^basic graphics modetext helpTry this option out if you're having trouble installingRed Hat Enterprise Linux 7.9.endtextkernel vmlinuzappend initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.9\x20Server.x86_64 xdriver=vesa nomodeset quietlabel rescuemenu indent count 5menu label ^Rescue a Red Hat Enterprise Linux systemtext helpIf the system will not boot, this lets you access filesand edit config files to try to get it booting again.endtextkernel vmlinuzappend initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.9\x20Server.x86_64 rescue quietlabel memtestmenu label Run a ^memory testtext helpIf your system is having issues, a problem with yoursystem's memory may be the cause. Use this utility tosee if the memory is working correctly.endtextkernel memtestmenu separator # insert an empty linelabel localmenu label Boot from ^local drivelocalboot 0xffffmenu separator # insert an empty line
menu separator # insert an empty linelabel returntomainmenu label Return to ^main menumenu exitmenu end
新建虚拟机进行安装

选择打开电源时进入固件




默认会选择第一个,不用自己手动选,等待3s自动安装

安装完成后记得关机再选择打开电源时进入固件,将启动方式更改成默认的方式:Hard Drive 即硬盘启动方式。不然会进入无限安装

相关文章:
PXE实现自动批量安装部署操作系统
PXE简介 PXE(Preboot eXecution Environment)是一种在计算机启动时使用网络接口从远程服务器获取操作系统安装和启动信息的技术。通过PXE,计算机可以从局域网中的PXE服务器上下载操作系统安装文件,并进行自动化的操作系统部署或故…...
Cyber Weekly #18
赛博新闻 1、Google 狂卷小模型,2B 参数 Gemma 2 赶超 GPT-3.5 Google本周发布了开源的轻量级、高性能模型 Gemma 2 2B。它拥有 20 亿参数,是从更大规模的模型中提炼而来的,在 LMSYS 大模型竞技场的得分超越了 GPT-3.5 和 Mixtral 8x7B。该…...
Open Interpreter - 开放解释器
文章目录 一、关于演示它是如何工作的?与 ChatGPT 的代码解释器比较 二、快速开始三、更多操作1、互动聊天2、程序化聊天3、开始新的聊天4、保存和恢复聊天5、自定义系统消息6、更改模型7、在本地运行 Open Interpreter终端Python上下文窗口,最大令牌 8、…...
“八股文”:程序员的福音还是梦魇?
——一场关于面试题的“代码战争” 在程序员的世界里,“八股文”这个词儿可谓是“如雷贯耳”。不,咱们可不是说古代科举考试中的那种八股文,而是指程序员面试中的那些固定套路的题目。如今,各大中小企业在招聘程序员时࿰…...
数据结构第2天作业 8月3日
单向链表 typedef int datatype; //由于有效数据不一定是正数,所以将数据重命名。typedef struct lklst{ //不能是无名结构体了,因为定义指针域的时候需要使用union{int len; //头结点时候使用;datatype data; …...
设计界的新宠:5款热门UI在线设计软件评测
随着用户界面设计行业的蓬勃发展,越来越多的设计师进入用户界面设计。选择一个方便的用户界面设计工具尤为重要!除了传统的用户界面设计工具,在线用户界面设计工具也受到越来越多设计师的青睐。这种不受时间、地点、计算机配置限制的工作方法…...
github添加ssh密钥,通过ssh方式推送代码
左手编程,右手年华。大家好,我是一点,关注我,带你走入编程的世界。 公众号:一点sir,关注领取python编程资料 很多人在使用github的时候,如果还是使用https的方式推送代码的话,可能会…...
Python设计模式 - 抽象工厂模式
定义 抽象工厂模式是一种创建型设计模式,它提供了一种创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 产品等级结构与产品族 为了更好地理解抽象工厂模式,先引入两个概念: 产品等级结构:就是产品的…...
【JavaEE初阶】懒汉模式与饿汉模式及指令重排序问题
目录 📕 单例模式 🌳 饿汉模式 🚩 线程安全 🎍 懒汉模式 🚩 懒汉模式-单线程版 🚩 懒汉模式-多线程版 🎄 指令重排序 📕 单例模式 单例模式是一种经典的设计模式,…...
Vue3使用Cascader 级联选择器如何获取值并提交信息
我写了一个用户对象,有address地址字段,我怎么将用户选择的级联数据selectedValue值传给address,并将对象返回给后端,核心代码实现了该问题。 <script> 核心代码: //获取住址并更新给addresslet selectedValue…...
Python面试整理-第三方库
Python社区提供了大量的第三方库,这些库扩展了Python的功能,覆盖了从数据科学到网络应用开发等多个领域。以下是一些非常流行和广泛使用的第三方库: 1. NumPy ● 用途:数值计算。 ● 特点:提供了一个强大的N维数组对象和大量用于数学运算的函数。 ● 应用场景:科学计算、…...
电脑添加虚拟网卡与ensp互联,互访
一、按照过程 1、打开设备管理器 2、点击网络适配器,点击左上角操作,点击“添加过时硬件” 3、下一页 4、选择“安装我手动从列表选择的硬件”,下一页 5、下拉,选择“网络适配器”,下一页 6、厂商选择“Microsoft”&…...
悬而未决:奇怪的不允许跨域CORS policy的问题
我在本地HBuilderX中进行预览写好的前端网页,它里面用了ajax访问了远程服务器的后端API网址,不出意外地报不允许跨域访问的错了:Access to XMLHttpRequest at ‘http://xxx.com/MemberUser/login’ from origin ‘http://mh.com’ has been b…...
索引优化秘籍:SQL Server数据库填充因子的调优艺术
索引优化秘籍:SQL Server数据库填充因子的调优艺术 在SQL Server的性能优化中,索引起着至关重要的作用。而索引填充因子(Fill Factor)则是控制索引页填充程度的重要参数,它直接影响索引的存储效率和查询性能。本文将深…...
ffmpeg 的内存分配架构
------------------------------------------------------------ author: hjjdebug date: 2024年 08月 01日 星期四 18:00:47 CST descripton: ffmpeg 的内存分配架构1 ------------------------------------------------------------ ffmpeg 的内配分配搞的人晕菜&#…...
Vue+live2d实现虚拟人物互动(一次体验叙述)
目录 故事的开头: 最终的实现效果: 实现步骤: 第一步:下载重要文件 第二步:创建vue项目文件,将刚下载文件拷贝到public目录下 第三步:在index.html文件中引入js 第四步:使用&…...
内联函数的概念和用途以及区别
内联函数(Inline Function)是C(以及C99之后的C语言)中的一个特性,旨在通过减少函数调用的开销来提高程序的执行效率。在正常情况下,当程序调用一个函数时,会发生一系列的操作,包括保…...
rust 桌面 sip 软电话(基于tauri 、pjsip库)
本文尝试下rust 的tauri 桌面运用 原因在于体积小 1、pjsip 提供了rust 接口官方的 rust demo 没编译出来 在git找了个sip-phone-rs-master https://github.com/Charles-Schleich/sip-phone-rs 可以自己编译下pjsip lib库替换该项目的lib 2、创建一个tauri demo 引用 [depe…...
Linux 进程优先级、程序地址空间、进程控制
个人主页:仍有未知等待探索-CSDN博客 专题分栏: Linux 目录 一、进程优先级 1、什么是进程优先级? 2、为什么要有优先级? 3、Linux的优先级特点、查看方式 4、命令行参数和环境变量 1.命令行参数 2.环境变量 获取环境变量的…...
学习笔记一
vector 在创建时指定初始大小和初始值: vector<int> a(5, 1) // 包含 5 个整数的 vector,每个值都为 1 可以使用 push_back 方法向 vector 中添加元素: a.push_back(7) // 将整数 7 添加到 vector 的末尾 可以使用 size(…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
