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

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此文件是在系统安装好之后自动生成的,这个文件记录了系统在安装过程中的所有设定。

  1. 安装图形化生成kickstart自动安装脚本的工具
[root@www ~]# yum install system-config-kickstart -y
  1. 启动图形制作工具
[root@www ~]# system-config-kickstart
  1. 按照图示更改配置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    安装源选择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 
  1. 将此自动化安装脚本共享出去
[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
  1. 测试安装
    在这里插入图片描述
    此处的网址根据自己的写,我配置的为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、…...

“八股文”:程序员的福音还是梦魇?

——一场关于面试题的“代码战争” 在程序员的世界里,“八股文”这个词儿可谓是“如雷贯耳”。不,咱们可不是说古代科举考试中的那种八股文,而是指程序员面试中的那些固定套路的题目。如今,各大中小企业在招聘程序员时&#xff0…...

数据结构第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 级联选择器如何获取值并提交信息

我写了一个用户对象&#xff0c;有address地址字段&#xff0c;我怎么将用户选择的级联数据selectedValue值传给address&#xff0c;并将对象返回给后端&#xff0c;核心代码实现了该问题。 <script> 核心代码&#xff1a; //获取住址并更新给addresslet selectedValue…...

Python面试整理-第三方库

Python社区提供了大量的第三方库,这些库扩展了Python的功能,覆盖了从数据科学到网络应用开发等多个领域。以下是一些非常流行和广泛使用的第三方库: 1. NumPy ● 用途:数值计算。 ● 特点:提供了一个强大的N维数组对象和大量用于数学运算的函数。 ● 应用场景:科学计算、…...

电脑添加虚拟网卡与ensp互联,互访

一、按照过程 1、打开设备管理器 2、点击网络适配器&#xff0c;点击左上角操作&#xff0c;点击“添加过时硬件” 3、下一页 4、选择“安装我手动从列表选择的硬件”&#xff0c;下一页 5、下拉&#xff0c;选择“网络适配器”&#xff0c;下一页 6、厂商选择“Microsoft”&…...

悬而未决:奇怪的不允许跨域CORS policy的问题

我在本地HBuilderX中进行预览写好的前端网页&#xff0c;它里面用了ajax访问了远程服务器的后端API网址&#xff0c;不出意外地报不允许跨域访问的错了&#xff1a;Access to XMLHttpRequest at ‘http://xxx.com/MemberUser/login’ from origin ‘http://mh.com’ has been b…...

索引优化秘籍:SQL Server数据库填充因子的调优艺术

索引优化秘籍&#xff1a;SQL Server数据库填充因子的调优艺术 在SQL Server的性能优化中&#xff0c;索引起着至关重要的作用。而索引填充因子&#xff08;Fill Factor&#xff09;则是控制索引页填充程度的重要参数&#xff0c;它直接影响索引的存储效率和查询性能。本文将深…...

ffmpeg 的内存分配架构

------------------------------------------------------------ author: hjjdebug date: 2024年 08月 01日 星期四 18:00:47 CST descripton: ffmpeg 的内存分配架构1 ------------------------------------------------------------ ffmpeg 的内配分配搞的人晕菜&#…...

Vue+live2d实现虚拟人物互动(一次体验叙述)

目录 故事的开头&#xff1a; 最终的实现效果&#xff1a; 实现步骤&#xff1a; 第一步&#xff1a;下载重要文件 第二步&#xff1a;创建vue项目文件&#xff0c;将刚下载文件拷贝到public目录下 第三步&#xff1a;在index.html文件中引入js 第四步&#xff1a;使用&…...

内联函数的概念和用途以及区别

内联函数&#xff08;Inline Function&#xff09;是C&#xff08;以及C99之后的C语言&#xff09;中的一个特性&#xff0c;旨在通过减少函数调用的开销来提高程序的执行效率。在正常情况下&#xff0c;当程序调用一个函数时&#xff0c;会发生一系列的操作&#xff0c;包括保…...

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 进程优先级、程序地址空间、进程控制

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a; Linux 目录 一、进程优先级 1、什么是进程优先级&#xff1f; 2、为什么要有优先级&#xff1f; 3、Linux的优先级特点、查看方式 4、命令行参数和环境变量 1.命令行参数 2.环境变量 获取环境变量的…...

学习笔记一

vector 在创建时指定初始大小和初始值&#xff1a; vector<int> a(5, 1) // 包含 5 个整数的 vector&#xff0c;每个值都为 1 可以使用 push_back 方法向 vector 中添加元素&#xff1a; a.push_back(7) // 将整数 7 添加到 vector 的末尾 可以使用 size(…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)

引言 工欲善其事&#xff0c;必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后&#xff0c;我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集&#xff0c;就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...