PXE:Kickstart自动化安装Linux系统

news2024/10/1 1:16:32

PXE:工作在 Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。

运行 PXE协议需要设置:DHCP服务器和TFTP服务器。DHCP服务器用来给 PXE client(将要安装系统的主机)分配一个IP地址。PXE Client通过TFTP协议到TFTP Server 上下载所需的文件。

KickStart概述

KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg 的文件;在其后的安装过程中(不只局限于生成Kickstart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。


一、kickstart自动安装脚本制作(第一步)

环境准备:Redhat7.9 、开启主机图形化界面、配置网络可用、关闭vmvare dhcp功能。

systemctl disable --now firewall  #关闭防火墙

setenforce 0

yum install httpd -y

systemctl enable --now httpd

ln -s /rhel7 /var/www/html   #将/rhel7目录链接到Apache的默认网页根目录/var/www/html,当通过Web服务器访问网站时,实际上你看到的是/rhel7目录中的内容。
dnf install system-config-kickstart   #安装 图形化生成kickstart 自动安装脚本的工具
system-config-kickstart  #启动图形制作工具

必要配置如下:

 配置完成后保存:为ks.cfg文件

 编辑文本 vim ks.cfg 向文本中添加所缺的信息:

%packages

@base

httpd

%end

  删除--maxsize=1

保存退出后,可以在命令行输入:ksvalidator ks.cfg 来查看文件中是否有错误。

cp /root/ks.cfg /var/www/html    #ks.cfg文件上传到web服务上。

可以在浏览器查看到则🆗,如果这一步到不了前面的就有问题:<(^-^)>

二、配置dhcp服务(第二步)

yum install dhcp -y   #安装DHCP服务器为client提供IP。

\cp -f /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf   #生成配置文件

vim /etc/dhcp/dhcpd.conf  #该删的删掉,该注释掉的注释掉,再根据自己服务器来修改一些配置。

关键配置:

option domain-name "lxm.org";
option domain-name-servers 114.114.114.114;
 

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;
}
 

完整内容如下:

# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#

# option definitions common to all supported networks...
option domain-name "lxm.org";
option domain-name-servers 114.114.114.114;

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;
}

修改后都要重启服务:systemctl enable --now dhcpd

新建虚拟机,测试:ks=http://172.25.254.6/ks.cfg

 三、共享pexlinux数据文件的网络服务(第三步)

安装所需包:yum install syslinux.x86_64 -y

yum install tftp-server.x86_64 -y

启动:systemctl enable --now tftp

资源应该放在 /var/lib/tftpboot:

cp /rhel7/isolinux/* /var/lib/tftpboot/

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

cd /var/lib/tftpboot/

mkdir pxelinux.cfg   ##建立数据目录,

cp isolinux.cfg pxelinux.cfg/default  ##数据文件;

修改开机启动配置:vim /var/lib/tftpboot/pxelinux.cfg/default

然后再修改DHCP配置文件;vim /etc/dhcp/dhcpd.conf,再上一步的基础上添加2行:filename:指在next-server上要读取哪个文件;

 

测试:测试的客户机要移除光盘iso;开启的时候选择“打开电源时进入固件”

若部署成功:只用开启,其他不用任何手动操作

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

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

相关文章

在使用JSON过程中遇到的一个空间释放问题

在对完成的模块进行空间访问检查中发现了这个问题,这刚开始接触JSON的使用,也不知道他的内部实现,因此该问题找了好久,终于发现是每个节点创建都会自动开辟空间,因此造成空间未成功释放的错误。 JSON未成功替换节点空间…

NVIDIA A100 和 H100 硬件架构学习

目前位置NV各种架构代号: NVIDIA GPU 有多个代号和架构,这些架构对应不同的世代和硬件特性。以下是 NVIDIA 主要 GPU 架构及其计算能力(Compute Capability)代号的简要概述: Tesla 架构 G80、GT200 Compute Capabi…

未授权访问漏洞(漏洞复现合集)

目录 一:Redis未授权访问漏洞 * 步骤一:进入vulhub目录使用以下命令启动靶机... 步骤二:在Kali上安装redis程序进行服务的链接 步骤三:可以直接连接执行命令且不需要认证说明存在未授权访问漏洞...下载以下攻击项目... 步骤四:使用工具执行以下命令获取目标的命…

LeetCode.572.另一棵树的子树

题目描述: 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。 二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。…

E24.【C语言】练习:求一个整数存储在内存中的二进制中1的个数(两种方法)

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() {int n 0;int sum 0;scanf("%d", &n);while (n!0){if (n % 2 1)sum;n n / 2;}printf("%d", sum); } 代码可以更简洁 while (n!0)直接写成while (n) 对于正整数&#xff1…

探索Python文档自动化的奥秘:MkDocs的神奇之旅

文章目录 **探索Python文档自动化的奥秘&#xff1a;MkDocs的神奇之旅**第一部分&#xff1a;背景为什么选择MkDocs&#xff1f; 第二部分&#xff1a;MkDocs是什么&#xff1f;MkDocs&#xff1a;文档生成的瑞士军刀 第三部分&#xff1a;如何安装MkDocs&#xff1f;一键安装&…

C++中的宏

文章目录 第一个简单宏示例宏定义可包括分号宏定义符号正常使用案例Debug版本和release版本的宏定义使用定义宏开关为某个数值而不仅仅是定义【注意】预处理定义规范代码折叠反斜杠实现多行宏的书写 第一个简单宏示例 发生在编译的预处理阶段。 不建议下面这么写&#xff0c;下…

3.9.转置卷积

转置卷积 ​ 目前为止&#xff0c;在卷积神经网络层中&#xff0c;通常会减少下采样输入图像的空间维度&#xff08;高和宽)。然而如果输入和输出图像的空间维度相同&#xff0c;在以像素级分类的语义分割中将会很方便&#xff1a;输出像素所处的通道维可以保有输入像素在同一…

Linux应用编程——实现SPI通信(基于百问网6ULL开发板)

1.SPI简介 SPI 通常指串行外设接口&#xff08;Serial Peripheral Interface&#xff09;&#xff0c;它是一种高速、全双工、同步的通信总线。 SPI 总线在芯片的管脚上只占用四根线&#xff0c;节约了芯片的管脚&#xff0c;也为 PCB 的布局节省了空间。这四根线分别是&…

大模型学习笔记 - InstructGPT中的微调与对齐

LLM 微调 之 InstructGPT中的微调与对齐 LLM 微调 之 InstructGPT中的微调与对齐 技术概览 InstructGPT中的微调与对齐 大体步骤标注数据量模型训练 1. SFT 是如何训练的2. Reward Model是如何训练的3. RLHF 是如何训练的具体讲解RLHF 的loss 函数 模型效果参考链接&#xf…

数据结构实验报告-图

桂 林 理 工 大 学 实 验 报 告 一、实验名称&#xff1a; 实验7 图 二、实验内容&#xff1a; 1.已知一个有向图的顶点集V和边集E分别为:V (0,1,2,3,4,5,6,7,8};E{<0,2>&#xff0c;<1,3>,<1,4>,<2,4>,<2,5>,<3,6>,<3,7>.&l…

计算机的错误计算(五十二)

摘要 用错数解释计算机的错误计算&#xff08;五十一&#xff09;中案例 的错误计算原因。 首先&#xff0c;由计算机的错误计算&#xff08;二十七&#xff09;知&#xff0c;错数公式是 上式表示&#xff0c;函数值的错误数字个数 比自变量的错误数字个数 多约 位。其中…

为智能改造赋能,提升运营效率的智慧地产开源了。

智慧地产视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。 AI是新形势下数…

稳稳的年化10%,多任务时序动量策略——基于pytorch的深度学习策略(附python代码)

原创文章第608篇&#xff0c;专注“AI量化投资、世界运行的规律、个人成长与财富自由"。 做因子挖掘这段时间&#xff0c;有一个观感。 传统的因子挖掘&#xff0c;尤其是手工构造因子&#xff0c;到遗传算法因子挖掘。——本身也是一种”拟合“&#xff0c;或者说试图”…

6 定时器

6 定时器 1、基本概念2、使用库函数实现 1、基本概念 定时器的基本工作框架 STM32F103共支持8个定时器 假如分频器PSC的值0,则PSC分频系数1,表示输入1个时钟信号,CNT计数器加1,1S加1&#xff0c;当CNT计数器的值3&#xff0c;跟ARR自动重载寄存器的值21相等时&#xff0c;就…

Linux基于设备树的字符设备驱动框架

掌握设备树是 Linux 驱动开发人员必备的技能&#xff01;因为在新版本的 Linux 中&#xff0c;ARM 相关的驱动全部采用了设备树(也有支持老式驱动的&#xff0c;比较少)&#xff0c;最新出的 CPU 其驱动开发也基本都是基于设备树的&#xff0c;比如 ST 新出的 STM32MP157、NXP的…

【React】详解 index.js 文件

文章目录 一、index.js文件的基本结构1. 引入必要的模块2. 渲染根组件3. 注册服务工作者&#xff08;可选&#xff09; 二、index.js文件的详细解析1. ReactDOM.render的作用2. 为什么使用React.StrictMode3. 服务工作者的注册 三、index.js文件的最佳实践1. 使用模块化引入2. …

缓存常见问题总结

目录 一&#xff1a;缓存穿透 解决方案 1.对请求增加校验机制 2.缓存空值或者特殊值 3.使用布隆过滤器 布隆过滤器原理图​编辑 哈希函数的基本特性 布隆过滤器为什么会存在误判 如何降低误判率 如何使用布隆过滤器 布隆过滤器的应用场景 如何使用布隆过滤器 第一…

QT 建立tcp服务端 TcpServer TcpSocket

基于正点原子教程&#xff0c;个人改编一点点(先写着&#xff0c;还没学客户端来验证) QTcpServer 服务端&#xff0c;下控制多个socket QTcpSocket 可以理解为一个TCP连接 使用客户端的流程为 1.包含network和include 2.声明QTcpServer信号 整个流程都要使用QTcpServer对象&a…

搭建pxe网络安装环境实现服务器自动部署

1.首先配置自动化脚本工具 根据自己的主机设置自己的IP 这张图选择红框下面的选则剩余空间 红帽7的初始网卡为ens33&#xff0c;所以部署后新机器的网卡为ens33 根据自己所要部署的版本编写合适的脚本 使用vim.ks.cfg进入脚本编写 2.配置DHCP 使用vim编写/etc/dhcp/dhcpd.conf …