红帽7基于kickstart搭建PXE环境

Kickstart 文件是一种配置文件,用于定义 Linux 系统安装过程中的各种参数,如分区、网络配置、软件包选择等。system-config-kickstart 提供了一个图形界面,方便用户快速生成这些配置文件。

用户可以通过图形界面进行系统安装的详细配置,包括:

  • 安装方法(如网络安装、本地安装等)。

  • 网络设置(如 IP 地址、网关、DNS 等)。

  • 分区信息(如分区大小、文件系统类型等)。

  • 软件包选择(如安装哪些软件包或组)。

  • 预安装和安装后脚本(用于执行自定义操作)。

配置流程

由于system-config-kickstart在redhat7.9以上就不再提供了,所以建议选择7.9以下的版本或centos7.9以下

逻辑思路:通过一台服务器httpd服务分享我们之后需要安装的主机提供光盘文件,和我们使用system-config-kickstart 生成的kickstart配置文件。新主机在安装的时候不从硬件启动,先通过DHCP获取到IP地址和根据下一步的IP去找获取共享资源的tftp服务器,这个服务器共享一个引导文件pxelinux.0,用于网络启动的引导程序文件。让系统去找pxelinux.cfg/default文件,并定义内核文件、启动参数,其中就含有我们httpd服务分享的那些资源。然后根据kickstart实现自动化安装和配置

为了省事儿我们把DHCP、kickstart、httpd和tftp服务都放在一台主机上提供。主机IP地址为:192.168.118.134

环境准备

由于kickstart它是有界面的,所以我们需要下载界面。如果读者安装rhel7是带有界面的,这一步跳过。

yum group list
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Repository 'baseos' is missing name in configuration, using id
Installed Environment Groups:
   Server with GUI
Available Environment Groups:
   Minimal Install
   Infrastructure Server
   File and Print Server
   Basic Web Server
   Virtualization Host
Available Groups:
   Compatibility Libraries
   Console Internet Tools
   Development Tools
   Graphical Administration Tools
   Legacy UNIX Compatibility
   Scientific Support
   Security Tools
   Smart Card Support
   System Administration Tools
   System Management
Done

查看好我们需要的Server with GUI这个包之后,我们直接安装,顺便安装上DHCP,httpd,system-config-kickstart这几个包

yum group install "Server with GUI" -y
yum install system-config-kickstart dhcp httpd -y

准备提供服务的系统盘 

为了避免不必要的麻烦,请事先关闭selinux和防火墙:setenforce 0 && systemctl stop firewalld

我们先将系统盘挂载的目录创建一个软连接到httpd服务的目录下面

ln -s /mnt /var/www/html
[root@localhost ~]# ll /var/www/html/
total 0
lrwxrwxrwx. 1 root root 4 Feb 22 09:19 mnt -> /mnt

systemctl start httpd

 启动之后自己用浏览器查看一下

配置kickstart

咱要先进入到GUI界面,然后才能启动kickstart:init 5进入

然后自己随便配置一下,找到terminal。在里面输入system-config-kickstart

 下图中的Reboot system after installation不能勾上,要不然它之后安装好重启又会链接到DHCP,然后反复重装系统

下一步installation method选择HTTP,写上server地址,和目录即可

 第三步的boot loader options保持默认即可

第四步是磁盘分区的,我们不想安装master那样分区,选择Clear Master Boot Recoed,磁盘的标签也要初始化Initial the disk label

我们需要给上面的Layout添加一个boot分区,一个/分区和一个swap内存分区

把剩下的全部给根分区好了

 

配置好之后,第五步,是配置网络的,这一步需要添加一块网卡,要DHCP的

 跳过Authentication Configuration(配置验证方式的,默认就可以),第六步配置防火墙,关闭就好

 第七步把那个Install a graphicial environment关掉,这个是安装图形化界面的

最后一步,可以编写自己安装好了系统之后执行的脚本,我们跳过了Package Selection这一步,这一步是可以选择装系统是安装的软件包,这里没法配置。我们可以之后在生成的ks.cfg文件中添加上。

我们在Post-Installation Scrpt中写个脚本,要求它自动挂载

cat > /etc/yum.repo.d/rhel7.repo << EOF
[rhel]
basename=rhel
baseurl=http://192.168.118.134/mnt
gpgcheck=0
enabled=1
EOF

yum clean all && yum makecache

 编辑好之后保存即可,我这里不是以root用户启动界面的,所以我没法保存到root目录下,就保存到Redhat用户目录下

init 3回到终端模式

将创建好的ks.cfg给移动到http服务目录下:mv /home/redhat/ks.cfg /var/www/html/

回到终端模式之后需要重新启动一下httpd:systemctl start httpd

参考桌面的anaconda.cfg我们在里面添加上需要安装到软件包:

%packages

@base #示安装系统的基础软件包组,它提供了一个最小化的、功能完备的 Linux 系统

net-tools

vim

tree

tar

%end

使用syslinux作为引导安装

这里会带着大家一步步从官方文档中找到配置syslinux的方法

yum install syslinux -y

rpm -ql命令用于列出指定 RPM 包中包含的所有文件及其安装路径:rpm -ql syslinux

 先看看README这个文件: more /usr/share/doc/syslinux-4.05/README

 由于我们是使用的pxelinux这个功能,这里要我们去寻找pxelinux.txt文档

[root@localhost ~]# rpm -ql syslinux | grep pxelinux.txt
/usr/share/doc/syslinux-4.05/pxelinux.txt

 文中提到了需要使用到tftp服务,和需要创建/tftpboot/pxelinux.cfg,并且里面需要存放pxelinux.0文件和任何需要引导的内核和initrd镜像

 我们下载tftp-server:yum install tftp-server -y,默认情况下/var/lib/tftpboot就是它服务器的默认根目录。

根据上面图片提到的信息,我们把pxelinu.0和我们本台主机的ISO 镜像或光盘引导系统移动到这个目录下面

rpm -ql syslinux | grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /mnt/isolinux/* /var/lib/tftpboot/

 注释:isolinux是专门用于从 ISO 镜像或光盘引导系统,就是咱们在安装系统时的初始那个引导界面

最后创建好/var/lib/tftpboot/pxelinux.cfg这个目录,在这个目录中的的配置可以从根据syslinux.txt中查看(地址为rpm -ql syslinux | grep syslinux.txt)。

不过可以偷懒: [root@localhost tftpboot]# cp isolinux.cfg ./pxelinux.cfg/default

我们修改一下里面的参数

default vesamenu.c32
timeout 30#3秒钟,选择系统的时候不用等默认的60秒

...

label linux
  menu label ^Install Red Hat Enterprise Linux 7.9
  menu default
  kernel vmlinuz
  append initrd=initrd.img repo=http://192.168.118.134/mnt/ ks=http://192.168.118.134/ks.cfg quiet

label check
  menu label Test this ^media & install Red Hat Enterprise Linux 7.9
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.9\x20Server.x86_64 rd.live.check quiet

....

 

默认进入安装引导的时候是:Test this ^media & install Red Hat Enterprise Linux 7.9

改为直接安装:^Install Red Hat Enterprise Linux 7.9  #这个标签可以内容可以改,自定义的。然后修改源为我们自己配置的repo=http://192.168.118.134/mnt/ ks=http://192.168.118.134/ks.cfg ,quite表示静默安装

配置完之后:wq!退出

systemctl enable --now tftp

配置DHCP服务

这一步是为了需要自动安装的主机,自动获取IP之后指定其下一步的行为。让他通过tftpboot里面的pxelinux.0进行后续的安装

yum install dhcp -y
[root@localhost pxelinux.cfg]# rpm -ql dhcp
/etc/NetworkManager
/etc/NetworkManager/dispatcher.d
/etc/NetworkManager/dispatcher.d/12-dhcpd
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/dhcp/scripts
/etc/dhcp/scripts/README.scripts
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/usr/bin/omshell
/usr/lib/systemd/system/dhcpd.service
/usr/lib/systemd/system/dhcpd6.service
/usr/lib/systemd/system/dhcrelay.service
/usr/sbin/dhcpd
/usr/sbin/dhcrelay
/usr/share/doc/dhcp-4.2.5
/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
/usr/share/doc/dhcp-4.2.5/dhcpd6.conf.example

显然/etc/dhcp/dhcpd.conf就是我们需要配置的文件,其中/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example是提供给我们的示例

cp -f /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

进入到这个配置文件中删除掉dhcp功能之后的所有配置,和bootp功能

option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

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.
# This declaration allows BOOTP clients to get dynamic addresses,
# which we don't really recommend.

# A slightly different configuration for an internal subnet.
subnet 192.168.118.0 netmask 255.255.255.0 {
  range 192.168.118.140 192.168.118.180;
  option domain-name-servers 114.114.114.114;
  option routers 192.168.118.2;
  next-server 192.168.118.134;
  filename "pxelinux.0";
}

当需要安装的主机在获取到了IP地址,之后,会通过tftp到192.168.118.134这个主机去找pxelinux.0引导程序。 

以上DHCP就配置好了,在启动之前需要关闭VMware的DHCP功能,选择虚拟网络编辑器

 找到118网段的网卡,关闭DHCP

启动dhcpd

systemctl enable --now dhcpd

以上就全部配置好了,现在进行测试

测试

先创建一台虚拟机壳子,直接移除掉CD/DVD,这一步可以不做,为了凸显效果,我直接移除了

右击新创建的虚拟机,点击"打开电源时进入固件"

选择从网络启动,使用shift加+将选项向上移动。之后保存退出

 然后在Exit选择Exiting Saving Changes退出即可。正在自动部署

 等待安装好了之后,重复上面的步骤把我们的从网络启动改回到从硬件启动。进入到"打开电源时进入固件",然后 选择Hard Drive硬件启动,再次启动之后就是我们定制好的系统了

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux网络】TCP/IP地址的有机结合(有能力VS100%???),IP地址的介绍

目录 1.背景知识&#xff08;更好的理解TCP/IP的结合&#xff09; 1.1远距离的传输要经过很多的子网&#xff0c;很多的路由器 1.2IP在OSI标准的网络层 1.3路由器的多个IP 2.TCP和IP的有机结合 2.1IP确定怎么选择路径&#xff0c;数据链接就是具体的实现 2.2问题背景&am…

ue5 Arch vis AI traffic system 车辆系统添加不同种类的车

一、前置条件 资源包拥有二、步骤 添加第二辆车 在父级蓝图底下创建子级蓝图 打开子级蓝图 替换骨骼网格体 创建动画蓝图&#xff0c;骨骼选择该骨骼网格体的骨骼 连接动画蓝图 添加动画蓝图 添加资源包

3分钟idea接入deepseek

DeepSeek简介 DeepSeek 是杭州深度求索人工智能基础技术研究有限公司开发的一系列大语言模型&#xff0c;背后是知名量化资管巨头幻方量化3。它专注于开发先进的大语言模型和相关技术&#xff0c;拥有多个版本的模型&#xff0c;如 DeepSeek-LLM、DeepSeek-V2、DeepSeek-V3 等&…

ChatGPT平替自由!DeepSeek-R1私有化部署全景攻略

一、DeepSeek-R1本地部署配置要求 &#xff08;一&#xff09;轻量级模型 ▌DeepSeek-R1-1.5B 内存容量&#xff1a;≥8GB 显卡需求&#xff1a;支持CPU推理&#xff08;无需独立GPU&#xff09; 适用场景&#xff1a;本地环境验证测试/Ollama集成调试 &#xff08;二&a…

搭建 Hadoop 3.3.6 伪分布式

搭建 Hadoop 3.3.6 伪分布式 IP 192.168.157.132 初始化操作 更改yum源 # 1_1.安装Wget yum install wget# 1_2.备份CentOS-Base.repo文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak# 2.下载阿里yum源配置 wget -O /etc/yum.repos.d/Cen…

nodejs:vue 3 + vite 作为前端,将 html 填入<iframe>,在线查询英汉词典

向 doubao.com/chat/ 提问&#xff1a; node.js js-mdict 作为后端&#xff0c;vue 3 vite 作为前端&#xff0c;编写在线查询英汉词典 后端部分&#xff08;express js-mdict &#xff09; 详见上一篇&#xff1a;nodejs&#xff1a;express js-mdict 作为后端&#xff…

计算机网络真题练习(高软29)

系列文章目录 计算机网络阶段练习 文章目录 系列文章目录前言一、真题练习总结 前言 计算机网络的阶段练习题&#xff0c;带解析答案。 一、真题练习 总结 就是高软笔记&#xff0c;大佬请略过&#xff01;

医疗AI领域中GPU集群训练的关键技术与实践经验探究(下)

五、医疗 AI 中 GPU 集群架构设计 5.1 混合架构设计 5.1.1 参数服务器与 AllReduce 融合 在医疗 AI 的 GPU 集群训练中,混合架构设计将参数服务器(Parameter Server)与 AllReduce 相结合,能够充分发挥两者的优势,提升训练效率和模型性能。这种融合架构的设计核心在于根…

@Configuration与 @Component的差异

继承关系 Configuration确实可以视为Component的派生注解。从源码层面来看&#xff0c;Configuration本身通过元注解方式标记了Component&#xff0c;这意味着所有被Configuration注解的类本质上也会被Spring识别为组件&#xff08;Component&#xff09;。这种设计使得Config…

c++入门-------命名空间、缺省参数、函数重载

C系列 文章目录 C系列前言一、命名空间二、缺省参数2.1、缺省参数概念2.2、 缺省参数分类2.2.1、全缺省参数2.2.2、半缺省参数 2.3、缺省参数的特点 三、函数重载3.1、函数重载概念3.2、构成函数重载的条件3.2.1、参数类型不同3.2.2、参数个数不同3.2.3、参数类型顺序不同 前言…

Deepseek首页实现 HTML

人工智能与未来&#xff1a;机遇与挑战 引言 在过去的几十年里&#xff0c;人工智能&#xff08;AI&#xff09;技术取得了突飞猛进的发展。从语音助手到自动驾驶汽车&#xff0c;AI 正在深刻地改变我们的生活方式、工作方式以及社会结构。然而&#xff0c;随着 AI 技术的普及…

20250223学习记录

之前HDFview查看.hdf5文件的时候&#xff0c;看到土壤湿度数据是分为AM和PM&#xff0c;当时我有一个这样的疑问 但是后来用Python处理的时候&#xff0c;直接就是对整个的.hdf5文件处理&#xff0c;当时没有注意这一块&#xff0c;所以就没有这个疑问了。 今天突然看到一篇论…

Rust编程语言入门教程 (七)函数与控制流

Rust 系列 &#x1f380;Rust编程语言入门教程&#xff08;一&#xff09;安装Rust&#x1f6aa; &#x1f380;Rust编程语言入门教程&#xff08;二&#xff09;hello_world&#x1f6aa; &#x1f380;Rust编程语言入门教程&#xff08;三&#xff09; Hello Cargo&#x1f…

C++的allactor

https://zhuanlan.zhihu.com/p/693267319 1 双层内存配置器 SGI设计了两层的配置器&#xff0c;也就是第一级配置器和第二级配置器。同时为了自由选择&#xff0c;STL又规定了 __USE_MALLOC 宏&#xff0c;如果它存在则直接调用第一级配置器&#xff0c;不然则直接调用第二级配…

DeepSeek R1/V3满血版——在线体验与API调用

前言&#xff1a;在人工智能的大模型发展进程中&#xff0c;每一次新模型的亮相都宛如一颗投入湖面的石子&#xff0c;激起层层波澜。如今&#xff0c;DeepSeek R1/V3 满血版强势登场&#xff0c;为大模型应用领域带来了全新的活力与变革。 本文不但介绍在线体验 DeepSeek R1/…

forge-1.21.x模组开发(二)给物品添加功能

功能效果 创建一个兑换券&#xff0c;当使用兑换券对着兑换机右键时&#xff0c;获得一条烤鱼 创建兑换券 创建ExchangeCouponsItem.java&#xff0c;继承Item&#xff0c;定义兑换券内容 public class ExchangeCouponsItem extends Item {public ExchangeCouponsItem(Prop…

NIO-Reactor模型梳理与demo实现

关于NIO&#xff0c;我们在上一篇 linux下网络编程socket&select&epoll的底层实现原理 就介绍了网络阻塞IO、以及基于事件驱动的非阻塞IO。对于NIO的API基本使用是java提供的接口&#xff0c;然后我们在业务上对NIO的使用&#xff0c;也是有不同的使用方法的。然后在我…

数据结构与算法-搜索-双向搜索 和 A*算法(字串变换,八数码,第k短路)

双向搜索&#xff1a; 双向搜索是一种优化的搜索策略&#xff0c;常用于在状态空间中寻找从起始点到目标点的路径或满足特定条件的状态 基本概念 双向搜索指的是从起始点和目标点同时出发进行搜索的方法。传统的单向搜索&#xff0c;如深度优先搜索&#xff08;DFS&#xff09…

Java实现斗地主-做牌以及对牌排序

卡牌类 public class Card {private String size;//大小private String color;//花色private int value;//权值public Card() {}public Card(String size, String color, int value) {this.size size;this.color color;this.value value;}public String toString(){return …

Tesla T4 显卡 Linux 64-bit Ubuntu 24.04 驱动和cuda系统支持版本

搜索结果 | <dd~ProductName> | <dd~OSName> | NVIDIA 操作系统和硬件平台&#xff1a;页面展示的是适用于Linux 64位操作系统&#xff0c;版本为Ubuntu 24.04&#xff0c;并且专门为Tesla T4等NVIDIA数据中心GPU提供驱动程序。 驱动版本&#xff1a;页面列出了不…