红帽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 -> /mntsystemctl 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
EOFyum 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硬件启动,再次启动之后就是我们定制好的系统了

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C/C++跳动的爱心

系列文章 序号直达链接1C/C李峋同款跳动的爱心2C/C跳动的爱心3C/C经典爱心4C/C满屏飘字5C/C大雪纷飞6C/C炫酷烟花7C/C黑客帝国同款字母雨8C/C樱花树9C/C奥特曼10C/C精美圣诞树11C/C俄罗斯方块小游戏12C/C贪吃蛇小游戏13C/C孤单又灿烂的神14C/C闪烁的爱心15C/C哆啦A梦16C/C简单…

MongoDB 简介

MongoDB 是一种高性能、开源的 NoSQL 数据库&#xff0c;以其灵活的文档模型和强大的扩展性而闻名。 1.MongoDB 是什么 MongoDB 是一种 NoSQL 数据库&#xff0c;采用 文档模型 存储数据&#xff0c;支持灵活的 JSON 格式文档。它无需预定义表结构&#xff0c;能够动态调整数据…

记录首次安装远古时代所需的运行环境成功npm install --save-dev node-sass

最开始的报错&#xff1a; 最后根据报错一步步 安装所需要的pythong之类的环境&#xff0c;最后终于成功了&#xff0c;得以让我在github上拉的vuehr项目&#xff08;狗头18年还是20年的远古项目&#xff09;成功本地运行&#xff0c;最后附上本地运行成功的贴图。如果大家也在…

华为guass在dbever和springboot配置操作

下面记录华为guass在dbever和springboot配置操作&#xff0c;以备忘。 1、安装dbeaver-ce-23.2.0-x86_64-setup.exe和驱动程序 Download | DBeaver Community 2、配置高斯数据库驱动 3、新建数据库连接 4、操作指引 opengauss官方文档 https://docs-opengauss.osinfra.cn/zh…

今日运维之-Mac笔记本python环境问题

1. 问题&#xff1a;MAC升级系统后git报错&#xff1f; Error: Cant create update lock in /usr/local/var/homebrew/locks! Fix permissions by running:sudo chown -R $(whoami) /usr/local/var/homebrew Traceback (most recent call last):11: from /usr/local/Homebrew/…

c3p0、Druid连接池+工具类 Apache-DbUtils (详解!!!)

数据库连接池是在应用程序启动时创建一定数量的数据库连接&#xff0c;并将这些连接存储在池中。当应用程序需要与数据库通信时&#xff0c;它可以向池中请求一个连接&#xff0c;使用完后将连接归还给池&#xff0c;而不是关闭连接。这样可以减少创建和关闭连接的开销&#xf…

数仓搭建实操(传统数仓oracle):DWD数据明细层

数据处理思路 DWD层, 数据明细层>>数据清洗转换, 区分事实表,维度表 全是事实表,没有维度表>>不做处理 数据清洗>>数据类型varchar 变成varchar2, 日期格式统一(时间类型变成varchar2); 字符数据去空格 知识补充: varchar 存储定长字符类型 ; 存储的数据会…

2.1 第一个程序:从 Hello World 开始

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 同大多数编程语言教程一样&#xff0c;本书第一个代码也是输出&#xff1a;Hello world! 这似乎也是惯例。我们也先从这个简单的代码…

2025年02月21日Github流行趋势

项目名称&#xff1a;source-sdk-2013 项目地址url&#xff1a;https://github.com/ValveSoftware/source-sdk-2013项目语言&#xff1a;C历史star数&#xff1a;7343今日star数&#xff1a;929项目维护者&#xff1a;JoeLudwig, jorgenpt, narendraumate, sortie, alanedwarde…

【WSL2】 Ubuntu20.04 GUI图形化界面 VcXsrv ROS noetic Vscode 配置

【WSL2】 Ubuntu20.04 GUI图形化界面 VcXsrv ROS noetic Vscode 配置 前言整体思路安装 WSL2Windows 环境升级为 WIN11 专业版启用window子系统及虚拟化 安装WSL2通过 Windows 命令提示符安装 WSL安装所需的 Linux 发行版&#xff08;如 Ubuntu 20.04&#xff09;查看和设置 WS…

7.建立文件版题库|编写model文件|使用boost split字符串切分(C++)

建立文件版题库 题目的编号题目的标题题目的难度题目的描述&#xff0c;题面时间要求(内部处理)空间要求(内部处理) 两批文件构成第一个&#xff1a;questions.list : 题目列表&#xff08;不需要题目的内容&#xff09;第二个&#xff1a;题目的描述&#xff0c;题目的预设置…

LabVIEW中CFURL.llb 工具库说明

CFURL.llb 是 LabVIEW 2019 安装目录下 C:\Program Files (x86)\National Instruments\LabVIEW 2019\vi.lib\Platform\ 路径下的工具库&#xff0c;主要用于处理 LabVIEW 与 URL 相关的操作&#xff0c;涵盖 URL 解析、HTTP 请求发送、数据传输等功能模块&#xff0c;帮助开发者…

网络运维学习笔记 017 HCIA-Datacom综合实验01

文章目录 综合实验1实验需求总部特性 分支8分支9 配置一、 基本配置&#xff08;IP二层VLAN链路聚合&#xff09;ACC_SWSW-S1SW-S2SW-Ser1SW-CoreSW8SW9DHCPISPGW 二、 单臂路由GW 三、 vlanifSW8SW9 四、 OSPFSW8SW9GW 五、 DHCPDHCPGW 六、 NAT缺省路由GW 七、 HTTPGW 综合实…

6.✨Python学习价值与优势分析

✨Python 是一种值得深入学习的编程语言&#xff0c;其设计哲学、广泛的应用场景以及强大的社区支持使其成为当今最受欢迎的编程语言之一。以下从多个角度分析为什么 Python 值得深入学习&#xff1a; 1.&#x1f98b; 简洁易学的语法 Python 以简洁、可读性强著称&#xff0c…

Android Audio其他——数字音频接口(附)

数字音频接口 DAI,即 Digital Audio Interfaces,顾名思义,DAI 表示在板级或板间传输数字音频信号的方式。相比于模拟接口,数字音频接口抗干扰能力更强,硬件设计简单,DAI 在音频电路设计中得到越来越广泛的应用。 一、音频链路 1、模拟音频信号 可以看到在传统的…

Spring AI + Ollama 实现调用DeepSeek-R1模型API

一、前言 随着人工智能技术的飞速发展&#xff0c;大语言模型&#xff08;LLM&#xff09;在各个领域的应用越来越广泛。DeepSeek 作为一款备受瞩目的国产大语言模型&#xff0c;凭借其强大的自然语言处理能力和丰富的知识储备&#xff0c;迅速成为业界关注的焦点。无论是文本生…

2.3 变量

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 变量是用来存放某个值的数据&#xff0c;它可以表示一个数字、一个字符串、一个结构、一个类等。变量包含名称、类型和值。在代码中…

LLM大语言模型私有化部署-使用Dify的工作流编排打造专属AI诗词数据分析师

背景 前面的文章通过 Ollama 私有化部署了 Qwen2.5 (7B) 模型&#xff0c;然后使用 Docker Compose 一键部署了 Dify 社区版平台。 LLM大语言模型私有化部署-使用Dify与Qwen2.5打造专属知识库&#xff1a;在 Dify 平台上&#xff0c;通过普通编排的方式&#xff0c;创建了基于…

ESP32S3:参考官方提供的led_strip组件使用 SPI + DMA 方式驱动WS2812 RGB灯的实现思路 (实现各个平台移植使用该方式)

目录 引言使用SPI + DMA 方式实现思路分析1. 查看WS2812的datasheet手册2. 根据官方的led_strip组件的方式,自己手把手实现一遍3.完整的程序(实现霓虹灯效果)引言 参考官方提供的led_strip组件使用 SPI + DMA 方式驱动WS2812 RGB灯的实现思路,只有明白实现的思路,方能将其…

工程师 - VSCode的AI编码插件介绍: MarsCode

豆包 MarsCode MarsCode AI: Coding Assistant Code and Innovate Faster with AI 豆包 MarsCode - 编程助手 安装完成并使能后&#xff0c;会在下方状态栏上显示MarsCode AI。 安装完并重启VSCode后&#xff0c;要使用这个插件&#xff0c;需要注册一下账号。然后授权VSCod…