文章目录
- 实验介绍
- 使用的服务介绍
- PXE服务
- dhcp服务
- Kickstart 服务
- tftp服务
- 第一部分(基础部分)
- 代码展示
- 注意点
- 第一点![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/13c0f4aabb664655a4dd285dd8e5527a.png)
- 第二点
- 结果展示
- 第二部分(完整部分(升级版本))
- 实验步骤:
- 进入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.local
chmod +x /etc/rc.d/rc.local
cat > /etc/yum.repos.d/rhel.repo << EOF
[rhel7]
name=rhel7
baseurl=file:///rhel7
gpgcheck=0
EOF
yum 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操作系统。