dhcp+checkkickstar的实验理解
文章目录
- 实验介绍
- 使用的服务介绍
- PXE服务
- dhcp服务
- Kickstart 服务
- tftp服务
- 第一部分(基础部分)
- 代码展示
- 注意点
- 第一点
- 第二点
- 结果展示
- 第二部分(完整部分(升级版本))
- 实验步骤:
- 进入BIOS系统设置
- 实验分析
实验介绍
本实验是dhcp+kickstar+ tftp服务的结合进行操作的,共分为两个部分。
第一部分(基础部分): 单纯的kickstar+dhcp服务,实现除镜像之外的,设置
第二部分(完整部分): 只需要在虚拟客户机的BIOS界面进行设置即可完成自动化配置,节省空间和步骤,提高自动化流程
使用的服务介绍
PXE服务
PXE(Preboot Execution
Environment,预启动执行环境)是一种由Intel开发的技术,它允许计算机通过网络启动,而不是从本地存储设备(如硬盘)启动。在运维领域,PXE服务常用于自动化操作系统安装、更新和维护。PXE服务的基本原理如下:
客户机请求网络启动:当客户机(通常是裸机服务器或没有操作系统的设备)开机或重启时,BIOS会检测到网络启动选项,并通过PXE协议向网络发送请求。
DHCP服务器分配IP地址:客户机通过PXE发出的请求会被DHCP(Dynamic Host Configuration
Protocol,动态主机配置协议)服务器接收,DHCP服务器会为客户机分配一个临时的IP地址,并提供必要的网络配置信息。TFTP服务器提供引导文件:DHCP服务器还会告知客户机PXE引导文件的位置,客户机会通过TFTP(Trivial FileTransfer Protocol,简单文件传输协议)从TFTP服务器下载引导文件(如pxelinux.0)。
执行引导文件: 客户机下载并执行引导文件,该文件会加载必要的驱动程序和操作系统安装程序。
安装或更新操作系统: 根据配置,PXE引导过程可以启动操作系统安装过程,或者执行系统更新和维护任务。 在客户机从服务器下载资源的过程中,下载的资源(如引导文件、操作系统镜像等)通常存放在服务器上的共享存储空间中。具体来说:
TFTP服务器:PXE引导文件通常存放在TFTP服务器的指定目录下。TFTP服务器是一个简单的文件传输服务,用于在客户机和服务器之间传输小文件。
FTP或HTTP服务器: 对于较大的文件(如操作系统镜像),可能会使用FTP(File TransferProtocol,文件传输协议)或HTTP(HyperText Transfer Protocol,超文本传输协议)服务器来提供下载服务。这些服务器可以托管在独立的服务器上,或者与TFTP服务器集成在一起。
通过这种方式,运维人员可以集中管理和分发操作系统和软件更新,极大地简化了大规模系统部署和维护的工作流程。
dhcp服务
DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)是一种用于自动分配和配置网络设备的 IP 地址和其他网络参数的协议。在 Linux
系统中,DHCP 服务通常由 dhcpd 守护进程负责管理和运行。简述: 给客户机分发ip,实现更好的自动化管理的措施之一
主要功能
IP 地址分配: 为客户端分配可用的 IP 地址。
网络参数配置: 提供子网掩码、默认网关、DNS 服务器地址等网络参数。
租约管理: 管理 IP 地址的租约时间,确保地址的有效性和稳定性。
静态映射: 支持为特定设备分配固定 IP 地址(通过 MAC 地址绑定)。
Kickstart 服务
Kickstart 是一种自动化操作系统安装和配置的方法,主要用于 Red Hat Enterprise Linux (RHEL)
和其衍生版本(如 CentOS)的大规模部署。通过 Kickstart
服务,系统管理员可以预定义安装过程中需要回答的各种问题,从而实现无人值守的自动安装。
tftp服务
TFTP(Trivial File Transfer
Protocol,简单文件传输协议)是一种用于在网络中传输文件的轻量级协议。它基于UDP(User Datagram
Protocol,用户数据报协议),提供了基本的文件传输功能,而不包含复杂的认证和交互机制。在运维领域,TFTP服务主要用于以下场景:
网络设备配置文件备份和恢复: 许多网络设备(如路由器、交换机、防火墙等)支持通过TFTP服务备份和恢复配置文件。这样,运维人员可以方便地保存和还原设备的配置,以应对故障或配置错误。
操作系统安装和更新: TFTP服务可以用于在PXE(Preboot Execution Environment,预启动执行环境)环境中提供引导文件和操作系统镜像。客户机可以通过网络从TFTP服务器下载所需的文件来启动或安装操作系统。
固件升级: 一些设备(如打印机、服务器、存储设备等)支持通过TFTP服务升级固件。运维人员可以通过TFTP服务将新的固件文件传送到设备,以更新其软件版本。
文件共享和传输: 虽然TFTP协议本身没有复杂的文件权限和认证机制,但在一些简单的应用场景中,TFTP服务可以用于在不同设备之间共享和传输文件。
TFTP服务的主要特点包括:
简单性: TFTP协议非常简单,不包含复杂的认证和交互机制。这使得TFTP服务易于实现和使用,但也限制了它的功能和安全性。
无状态性 :TFTP服务是无状态的,即每个请求都是独立的,不依赖于前一个请求的结果。这使得TFTP服务具有良好的可扩展性和可靠性。
可靠性: 尽管TFTP协议本身没有内置的可靠性机制,但通过UDP协议的重传机制和TFTP自身的错误检测功能,TFTP服务在传输小文件时仍然具有较高的可靠性。
安全性 :由于TFTP协议没有内置的安全性机制,因此在使用TFTP服务时,通常需要结合其他安全措施(如防火墙、加密隧道等)来保护数据的安全
第一部分(基础部分)
操作步骤截图













之后保存退出,并检查语法,如下所示,我下面有输出就表示我42行的文件内容有误需更正

代码展示
在这里插入代码片这段代码是一个 Kickstart 文件(ks.cfg),用于自动化 Red Hat Enterprise Linux (RHEL) 或 CentOS 系统的安装过程。Kickstart 文件允许你预先定义安装过程中的各种选项,从而实现无人值守的自动安装。下面是对这段代码的逐行解释:#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# 这两行是注释,指定了平台类型和版本。这里假设是 x86、AMD64 或 Intel EM64T 架构,版本为开发版。# Install OS instead of upgrade
install
# 指定安装新的操作系统而不是升级现有的操作系统。# Keyboard layouts
keyboard 'us'
# 设置键盘布局为美国英语。 # Root password
rootpw --iscrypted $1$1Cfim.Jb$i6OWVI3oi8QSynjsz7HtK/
# 设置 root 用户的密码,密码已经被加密。# System language
lang zh_CN
# 设置系统语言为简体中文。# System authorization information
auth --useshadow --passalgo=sha512
# 使用影子密码文件,并指定密码哈希算法为 SHA-512。# Use text mode install
text
# 使用文本模式进行安装,而不是图形界面。# SELinux configuration
selinux --enforcing
# 启用 SELinux,并设置为强制模式。# Do not configure the X Window System
skipx
# 跳过 X Window System 的配置。# Firewall configuration
firewall --disabled
# 禁用防火墙。# Network information
network --bootproto=dhcp --device=ens33
# 设置网络配置为 DHCP,使用 ens33 网卡。# Reboot after installation
reboot
# 安装完成后自动重启系统。# System timezone
timezone Asia/Shanghai
# 设置系统时区为亚洲/上海。# Use network installation
url --url="http://172.25.253.9/mnt"
# 指定网络安装源的 URL。这个地址和挂载目录根据自己的实际情况来# System bootloader configuration
bootloader --location=mbr
# 在主引导记录(MBR)安装引导加载程序。# Clear the Master Boot Record
zerombr
# 清除主引导记录,删除任何旧的引导加载程序。# Partition clearing information
clearpart --all --initlabel
# 清除所有磁盘分区,并为磁盘初始化标签。# Disk partitioning information
part /boot --fstype="xfs" --size=1024
part swap --fstype="swap" --size=512
part / --fstype="xfs" --grow --size=1
# 创建分区:/boot 分区大小为 1024 MB,文件系统类型为 xfs;
# swap 分区大小为 512 MB;根分区 / 使用剩余空间,最小大小为 1 MB,
# 文件系统类型为 xfs。 %packages
@base
httpd
%end
# 指定安装的软件包组和单个软件包。
# 这里安装了基础软件包组和 httpd(Apache HTTP Server)。%post
mkdir -p /rhel7 echo mount /dev/cdrom /rhel7 >> /etc/rc.d/rc.localchmod +x /etc/rc.d/rc.localcat > /etc/yum.repos.d/rhel.repo << EOF
[rhel7]
name=rhel7
baseurl=file:///rhel7
gpgcheck=0
EOFyum install gcc -y
%end
# %post 部分是在安装完成后执行的脚本。这里创建了一个目录 /rhel7,
# 并将挂载 CD-ROM 到该目录的命令添加到 /etc/rc.d/rc.local 文件中,
# 以便系统启动时自动挂载。然后修改了 rc.local 文件的权限,使其可执行。# 接着创建了一个本地 yum 仓库配置文件 rhel.repo,
# 最后使用 yum 安装了 gcc 编译器。 # 这个 Kickstart 文件定义了从网络安装 RHEL 或 CentOS 系统的整个过程,
# 包括分区、软件包选择以及安装后的配置任务。
# 通过使用这样的文件,可以大大简化大规模部署操作系统的工作。
注意点
第一点
当服务配置完成之后,需要将/root/ks.cfg复制到/var/www/html的默认访问路径下面,并制作软链接 ,而后重启各类服务。而index.html是我自己做的一个默认页面,内容随意。
第二点

在配置分区的时候,只有根要选择grow,即立即代表分配、充满。其他的不需要,有就删掉。不然容易内存崩掉客户机无法启动
结果展示
运行可能需要几分钟甚至到10分钟不等,根据电脑配置和硬盘速率等因素决定,稍等即可让它跑完



第二部分(完整部分(升级版本))
实验步骤:









此处的地址和目录是自己服务器的地址和目录,在kerner vmlinuz上面添加default 则默认开机选择第一个,然后把后面的default删掉
进入BIOS系统设置



这个后面是循环执行,当第二遍的时候,需要改成硬盘启动
实验分析
本次实验是通过对应PEX技术的配置,模拟实现自动化远程控制客户机进行自动化安装配置的一个过程,从而展示出来了在对应大型网络系统的维护和部署方面的便捷性特点。
TFTP服务的注意事项和关键点:
在Linux系统中,TFTP服务器的默认共享文件夹通常位于以下路径:
/var/lib/tftpboot,这个目录是TFTP服务器默认监听的目录,客户端可以通过TFTP协议从这些目录中下载所需的文件。
如果需要 修改也行,但建议不要动,尤其是初学阶段。
而后我们建立,pxelinux.cfg目录,将default文件cp进去进行配置我们的默认设置

dhcp关键点

其中的filename 定义了客户端应该下载的文件名,这个文件是PXE引导过程中的引导程序。在这种情况下,客户端将下载名为 pxelinux.0 的文件,这是SYSLINUX项目的一部分,用于引导Linux操作系统。
相关文章:
dhcp+checkkickstar的实验理解
文章目录 实验介绍使用的服务介绍PXE服务dhcp服务Kickstart 服务tftp服务 第一部分(基础部分)代码展示注意点第一点第二点 结果展示 第二部分(…...
Android网络安全:如何防止中间人攻击
文章目录 引言一、中间人攻击概述二、预防中间人攻击的方法2.1 使用HTTPS2.2 证书锁定(Certificate Pinning)2.3 使用SSL/TLS最佳实践2.4 验证主机名 三、总结 引言 中间人攻击(Man-in-the-Middle,简称MITM)是一种常见…...
NOI Linux 2.0 的安装说明以及使用指南
关于 NOI Linux 2.0 NOI Linux 是 NOI 竞赛委员会基于 Ubuntu 操作系统开发的一款 Linux 桌面发行版,是一套免费的、专门为信息学奥林匹克竞赛选手设计的操作系统,是 NOI 系列赛事指定操作系统,适用于常见笔记本电脑和桌面电脑。 新建虚拟机…...
07、MySQL-多表查询
目录 1、内连接 1.1 隐式内连接 1.2 显式内连接 2、外连接 2.1 左外连接 2.2 右外连接 3、自连接 4、联合查询 5、子查询 5.1 标量子查询 5.2 列子查询 5.3 行子查询 5.4 表子查询 1、内连接 概念:相当于查询A、B表交集的部分数据 1.1 隐式内连接 语法&…...
20240809 每日AI必读资讯
乒乓球AI机器人赢了人类!正反手灵活转换,擦网球高球都能接 - 谷歌发布首个达到人类竞技水平的机器人Agent,挑战乒乓球赛场。 - 机器人通过学习大量乒乓球状态数据,掌握了正手上旋球、反手瞄准等技能,展现出高速运动…...
《投资的原理》阅读笔记一
这是我准备集中学习投资类书籍后阅读的第8本书,但是是第一本读到一半决定从新开始、每章都写笔记的第一本书。 《投资的原理》的作者陈嘉禾先生是一位资深的价值投资者,书中也是大力弘扬着价值投资,跟我倾向于量化投资方向的想法并不合拍&am…...
金九银十,全网最详细的软件测试面试题总结
前面看到了一些面试题,总感觉会用得到,但是看一遍又记不住,所以我把面试题都整合在一起,都是来自各路大佬的分享,为了方便以后自己需要的时候刷一刷,不用再到处找题,今天把自己整理的这些面试题…...
ActiveMQ任意文件写入漏洞(CVE-2016-3088)复现
一.环境配置 腾讯云的ubuntu操作系统,已经安装有docker 和 vulhub 直接来到 启动环境docker-compose,要在root权限下运行。 docker-compose up -d 若出现等待时间过长的情况,请参考这篇文章http://t.csdnimg.cn/SYhbE 访问http://公网ip:8…...
网络协议四 物理层,数据链路层
从这一节开始学习 五层模型。学习方法是从最底层物理层开始学习 七层模型 五层模型 各个层用的协议,以及加上协议后的称谓 各个层的作用 应用层:可以认为是原始数据,该数据称为 报文,用户数据。 运输层:也叫传输层&am…...
Python知识点:如何使用Twisted进行异步网络编程
Twisted是一个事件驱动的网络编程框架,支持异步编程,适用于处理大量并发网络连接的应用。使用Twisted进行异步网络编程可以分为以下几个步骤: 安装Twisted: 首先需要安装Twisted库,可以使用pip进行安装: pi…...
循环神经网络
一、RNN神经网络 基本网络结构 RNN神经网络数学模型 RNN反向传播 二、LSTM神经网络 LSTM的遗忘门 对数据进行筛选,有的抛弃,有的保留 LSTM的输入门 LSTM输出门 LSTM缓解RNN梯度消失问题...
SQL进阶技巧:有序数据合并问题之如何按照指定的规则对数据进行合并?【详解collect_list函数有序性保证】
目录 0 问题描述【小红书面试题】 1 数据准备 2 问题分析 3 小结 0 问题描述【小红书】 有如下需求,需要将左边的表变换成右边的表,注意字段内容的顺序及对应内容的一致性。 第一个字段为name,第二个字段为subject,第三个字段为score,变换后要求subject按照语文、数学…...
windows和office微软官方免费激活教程
微软提供了windows系统和office的官方免费激活,其实不用去买什么激活码,官方提供了激活方式,完全免费。目前测试没发现什么问题,windows还支持永久激活,比一些乱七八糟的kms激活工具还省心。 github地址:Gi…...
【C++ 面试 - 基础题】每日 3 题(七)
✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏&…...
Java面试题精选:消息队列(一)
1、为什么使用消息队列 问题用意: 其实就是想问一下消息队列有哪些使用场景,你项目中什么业务场景用到了消息队列,有什么技术挑战。使用MQ后给你带来了什么好处 规范回答: 消息队列的常见使用场景很多,但比较核心的…...
宝塔面板启用 QUIC 与 Brotli 的完整教程
环境 系统:Ubuntu 22.04.4 LTS x86_64 宝塔版本:7.7.0 (可使用本博客提供的一键安装优化脚本) nginx版本:1.26.1 开放UDP端口 注意:在你的服务器商家那里也要开放443 udp端口 sudo ufw allow 443/udp然后重新加载 UFW 以使新…...
Linux 进程调度(二)之进程的上下文切换
目录 一、概述二、上下文切换的实现1、context_switch2、switch_mm3、switch_to 三、观测进程上下文切换 一、概述 进程的上下文切换是指在多任务操作系统中,当操作系统决定要切换当前运行的进程时,将当前进程的状态保存起来,并恢复下一个要…...
Oracle事物临时表
在Oracle数据库中,事务临时表是一种特殊的表类型,主要用于存储在事务处理过程中产生的临时数据。这些表的数据只对当前会话或事务可见,并且在事务结束时会自动清除。 事务临时表的特点 生命周期: 事务临时表中的数据在事务提交或…...
看图学sql之sql的执行顺序
学完前面的内容,我们已经掌握了基本的sql语法了,那我们学的 select, distinct, from, where,group by, having, order by, limit 他们具体的执行顺序是什么样的呢? 语法: SELECT distinct column1, column2 FROM table1 join …...
百日筑基第四十五天-从JAVA8走到JAVA9
JAVA9新特性 Java 9发布于 2017 年 9 月 21 日 。 快速创建不可变集合 增加了List.of()、Set.of()、Map.of() 和 Map.ofEntries()等工厂方法来创建不可变集合(有点参考 Guava 的味道): List.of("Java", "C"); Set.of…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
前端开发者常用网站
Can I use网站:一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use:Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站:MDN JavaScript权威网站:JavaScript | MDN...
Linux安全加固:从攻防视角构建系统免疫
Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...
边缘计算网关提升水产养殖尾水处理的远程运维效率
一、项目背景 随着水产养殖行业的快速发展,养殖尾水的处理成为了一个亟待解决的环保问题。传统的尾水处理方式不仅效率低下,而且难以实现精准监控和管理。为了提升尾水处理的效果和效率,同时降低人力成本,某大型水产养殖企业决定…...
【QT】qtdesigner中将控件提升为自定义控件后,css设置样式不生效(已解决,图文详情)
目录 0.背景 1.解决思路 2.详细代码 0.背景 实际项目中遇到的问题,描述如下: 我在qtdesigner用界面拖了一个QTableView控件,object name为【tableView_electrode】,然后【提升为】了自定义的类【Steer_Electrode_Table】&…...
Git 切换到旧提交,同时保证当前修改不丢失
在 Git 中,可以通过以下几种方式切换到之前的提交,同时保留当前的修改 1. 使用 git checkout 创建临时分离头指针(推荐用于查看代码) git checkout <commit-hash>这会让你进入"分离头指针"状态,你可…...
