RedHat9 | kickstart无人值守批量安装

news2024/11/27 17:49:31

一、知识补充

kickstart

Kickstart是一种用于Linux系统安装的自动化工具,它通过一个名为ks.cfg的配置文件来定义Linux安装过程中的各种参数和设置。

kickstart的工作原理

Kickstart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件。在随后的安装过程中,当安装程序遇到需要填写参数的情况时,它会首先去查找Kickstart生成的文件。如果找到合适的参数,安装程序就会采用这些参数,从而避免了人工干预。这样,如果Kickstart文件涵盖了安装过程中出现的所有需要填写的参数,安装者就可以完全自动化地完成系统的安装。

整体架构图
在这里插入图片描述

二、实验步骤

环境准备

新添加两台台机器,网络参数如下

标识Kickstart-ServerKickstart-Client
主机名KickstartServernone
网络信息192.168.37.7/24DHCP自动分配
网络属性静态地址DHCP自动分配
主要操作用户rootnone

修改主机名

[root@localhost ~]# hostnamectl hostname Kickstart-Server
[root@localhost ~]# bash						

修改网络信息

[root@Kickstart-Server ~]# nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.37.7/24 ipv4.gateway 192.168.37.254
[root@Kickstart-Server ~]# nmcli connection up ens160

验证:查看网络信息

[root@Kickstart-Server ~]# ip add show ens160

新建一台全新的主机作为kickstart-client测试主机

在这里插入图片描述

其余选项保持默认
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

CD/DVD要选择【自动检测】
在这里插入图片描述
在这里插入图片描述

1、配置软件仓库

这里我们拥有一个本地的YUM源服务器,通过FTP共享,所以仓库地址指向YUM源服务器

首先删除原有的仓库文件

[root@Kickstart-Server ~]# rm -rf /etc/yum.repos.d/*

新建仓库文件

[root@Kickstart-Server ~]# vim /etc/yum.repos.d/dvd.repo

# 写入以下内容
[BaseOS]
name=BaseOS
baseurl=ftp://192.168.37.1/yum/BaseOS
enabled=1
gpgcheck=0

[AppStream]
name=AppStream
baseurl=ftp://192.168.37.1/yum/AppStream
enabled=1
gpgcheck=0

在这里插入图片描述

清除DNF缓存重新生成

[root@Kickstart-Server ~]# dnf clean all;dnf makecache

在这里插入图片描述

2、配置DHCP服务

安装DHCP服务

[root@Kickstart-Server ~]# dnf install -y dhcp-server

验证:验证软件安装情况

[root@Kickstart-Server ~]# rpm -qa dhcp-server

在这里插入图片描述

将模板文件中空行和注释行过滤后重定向到配置文件中

[root@Kickstart-Server ~]# egrep -v "^$|^#" /usr/share/doc/dhcp-server/dhcpd.conf.example > /etc/dhcp/dhcpd.conf
[root@Kickstart-Server ~]# vim /etc/dhcp/dhcpd.conf

修改的内容如下

default-lease-time 600;
max-lease-time 7200;
log-facility local7;
option domain-name-servers 192.168.37.7;
option architecture-type code 93 = unsigned integer 16;

subnet 192.168.37.0 netmask 255.255.255.0 {
  range 192.168.37.50 192.168.37.60;
  option routers 192.168.37.254;
}

class "pxeclients" {
  match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
  next-server 192.168.37.7;
  if option architecture-type = 00:07 {
    filename "BOOTX64.EFI";
  }
  else {
    filename "pxelinux.0";
  }
}

在这里插入图片描述

验证:检测配置文件语法问题

[root@Kickstart-Server ~]# dhcpd -t

在这里插入图片描述

开启DHCP服务,并加入开机自启

[root@Kickstart-Server ~]# systemctl enable --now dhcpd.service

调整防火墙策略

[root@Kickstart-Server ~]# firewall-cmd --add-service=dhcp --permanent
[root@Kickstart-Server ~]# firewall-cmd --reload

关闭SELinux

[root@Kickstart-Server ~]# setenforce 0
[root@Kickstart-Server ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

验证:开启kickstart-client,验证DHCP地址分配情况
在这里插入图片描述

3、配置TFTP服务

安装tftpboot中的SYSLINUX模块,用于网络引导服务

[root@Kickstart-Server ~]# dnf install -y syslinux-tftpboot

安装TFTP服务端软件

[root@Kickstart-Server ~]# dnf install -y tftp-server

TFTP的默认发布目录为/var/lib/tftpboot,我们需要修改为/tftpboot目录

[root@Kickstart-Server ~]# vim /usr/lib/systemd/system/tftp.service

# 修改以下选项
ExecStart=/usr/sbin/in.tftpd -s /tftpboot

在这里插入图片描述

启动TFTP服务并加入到开机自启

[root@Kickstart-Server ~]# systemctl enable --now tftp

调整防火墙策略

[root@Kickstart-Server ~]# firewall-cmd --add-service=tftp --permanent
[root@Kickstart-Server ~]# firewall-cmd --reload

验证:查看TFTP服务状态

[root@Kickstart-Server ~]# systemctl status tftp

在这里插入图片描述

连接镜像
在这里插入图片描述

新建挂载目录,将镜像临时挂载到目录中

[root@Kickstart-Server ~]# mkdir /iso
[root@Kickstart-Server ~]# mount /dev/cdrom /iso

验证:查看挂载目录中的内容

[root@Kickstart-Server ~]# ll /iso/

在这里插入图片描述

将引导镜像临时挂载到/media目录中

[root@Kickstart-Server ~]# mount /iso/images/efiboot.img /media/

验证:查看挂载目录下的内容

[root@Kickstart-Server ~]# ll /media/EFI/BOOT/

在这里插入图片描述

将挂载后目录中的内容复制到TFTP资源目录下

[root@Kickstart-Server ~]# cp -r /media/EFI/BOOT/* /tftpboot/

验证:查看TFTP资源目录内容

[root@Kickstart-Server ~]# ls /tftpboot/

在这里插入图片描述

不管主机架构为UEFI还是legacy,都需要内核文件和内存镜像文件系统

[root@Kickstart-Server ~]# cp /iso/images/pxeboot/vmlinuz /tftpboot/
[root@Kickstart-Server ~]# cp /iso/images/pxeboot/initrd.img /tftpboot/
3.1 UEFI启动菜单的制作

编辑启动菜单

[root@Kickstart-Server ~]# vim /tftpboot/grub.cfg

修改以下内容

set default="0"		 # 代表默认选择的菜单,在计算机中的计数从0开始,即默认选择第一个菜单
set timeout=6		 # 倒计时时间(秒)
menuentry 'Install Red Hat Enterprise Linux 9.2' --class fedora --class gnu-linux --class gnu --class os {
        linuxefi vmlinuz inst.stage2=ftp://192.168.37.7/dvd inst.ks=ftp://192.168.37.7/pub/ks.cfg quiet
        initrdefi initrd.img
}
  • vmlinuxz:内核文件系统
  • initrd.img:内存文件系统
  • inst.stage2:安装介质,安装镜像所存在的位置
  • inst.ks:自动化安装的ks文件位置

在这里插入图片描述

3.2 legacy启动菜单的制作

为主机架构为legacy新建引导文件目录

[root@Kickstart-Server ~]# mkdir /tftpboot/pxelinux.cfg

将光盘镜像中的legacy主机架构的引导菜单文件拷贝至legacy引导文件目录,文件名为default

[root@Kickstart-Server ~]# cp /iso/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default

编辑引导菜单文件

[root@Kickstart-Server ~]# vim /tftpboot/pxelinux.cfg/default

编辑内容如下

timeout 60		# 倒计时(s)
label linux
   menu label ^Install Red Hat Enterprise Linux 9.2
   menu default
   kernel vmlinuz
   append initrd=initrd.img inst.stage2=ftp://192.168.37.7/dvd inst.ks=ftp://192.168.37.7/pub/ks.cfg quiet

在这里插入图片描述
在这里插入图片描述

验证:开启kickstart-client,成功获取引导文件,但是在倒计时结束后会黑屏,这是因为我们没有指定安装镜像
在这里插入图片描述

4、配置FTP服务

安装FTP服务

[root@Kickstart-Server ~]# dnf install -y vsftpd

编辑配置文件,开启匿名用户访问

[root@Kickstart-Server ~]# sed -i "s/anonymous_enable=NO/anonymous_enable=YES/g" /etc/vsftpd/vsftpd.conf

调整防火墙策略

[root@Kickstart-Server ~]# firewall-cmd --add-service=ftp --permanent
[root@Kickstart-Server ~]# firewall-cmd --reload

新建共享目录

[root@Kickstart-Server ~]# mkdir /var/ftp/dvd

将光盘镜像挂载到共享目录中

[root@Kickstart-Server ~]# mount /dev/cdrom /var/ftp/dvd/

将挂载写入配置文件

[root@Kickstart-Server ~]# vim /etc/fstab

# 写入下列内容
/dev/cdrom              /var/ftp/dvd            iso9660 defaults        0 0

在这里插入图片描述

验证:查看FTP共享目录内容

[root@Kickstart-Server ~]# ll /var/ftp/dvd/

在这里插入图片描述

启动FTP服务,并加入到开机自启

[root@Kickstart-Server ~]# systemctl enable --now vsftpd.service

验证:使用主机访问共享目录
在这里插入图片描述

验证:先在kickstart-Server上开启追踪日志,然后再开启kickstart-client,这个时候会通过FTP获取安装镜像源,然后会显示安装界面

[root@Kickstart-Server ~]# journalctl -f -u tftp.service		# 实时显示日志的最新条目

在这里插入图片描述

选择第一项
在这里插入图片描述

查看实时显示的日志信息,可以看到Finnish提示拉取成功
在这里插入图片描述

此时系统会提示文件不存在,是因为我们的ks.cfg文件不存在
在这里插入图片描述

5、生成ks文件

通过红帽官网生成KS文件

https://access.redhat.com/labs/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

console=ttyS0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

lang en_US
keyboard --xlayouts='us'
timezone Asia/Shanghai --utc
rootpw $2b$10$59RKKpG0ojERHsmCYGftQuPd/0vH1fYOSeno4ct1XObQCCFFbxDPG --iscrypted
url --url=ftp://192.168.37.7/dvd
bootloader --append="console=ttyS0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto"
zerombr
clearpart --all --initlabel
autopart
network --bootproto=dhcp
skipx
firstboot --disable
selinux --enforcing
firewall --enabled --ssh
%post
useradd meaauf
echo redhat | passwd --stdin meaauf
%end
%packages
@^minimal-environment
kexec-tools
%end

新建ks.cfg文件,写入上述文件内容

[root@Kickstart-Server ~]# vim /var/ftp/pub/ks.cfg

在这里插入图片描述

验证:保证ks.cfg文件其它人拥有读权限

[root@Kickstart-Server ~]# ll /var/ftp/pub/ks.cfg

在这里插入图片描述

6、最终验证

kickstart-server上开启实时日志

[root@Kickstart-Server ~]# journalctl -f -u tftp.service

开启kickstart-client,会自动跳转安装
请添加图片描述
查看系统执行脚本情况
在这里插入图片描述

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

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

相关文章

昇思25天学习打卡营第17天|ChatGLM-6B聊天demo

一、简介: 本次实验,基于MindNLP和ChatGLM6B模型搭建一个小的聊天应用,ChatGLM6B 是基于 GLM-4 模型开发的开源对话机器人,拥有 62 亿个参数,能够进行自然流畅的语言交流。在对话中,ChatGLM6B 可以胜任文案…

实现原理:远程过程调用(RPC)

Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 💥💥个人主页:奋斗的小羊 💥💥所属专栏:C语言 🚀本系列文章为个人学习…

破解在制品管理不透明难题

在快节奏的现代工业浪潮中,每一个细微的管理环节都直接关系到企业的竞争力与盈利能力。在车间生产中,在制品管理流程不透明是一个常见问题,它可能导致生产效率低下、成本增加、库存积压以及沟通障碍等负面影响。 在制品管理流程不透明&#x…

人员定位技术的行业应用,你有没有了解过?

在之前的文章中,新锐科创为大家讲述了,将人员定位技术实际应用于工厂人员定位的效果,大家感觉是不是有点新颖,那么,你又是否清楚人员定位技术的行业应用呢?如果你从来都没有了解过,建议看看本篇…

【EFK】efk 8收集docker容器日志测试

前言 目前,efk 全家桶已经更新到版本8 了,本章节我们使用8版本的elk搭建日志收集系统,了解它的配置运行过程,方便以后在更复杂的环境中更好的使用。 版本默认就是8最新的,也可以自己指定其他8的版本 elasticsearch: …

php简单商城小程序系统源码

🛍️【简单商城小程序】🛍️ 🚀一键开启,商城搭建新体验🚀 你还在为繁琐的商城搭建流程头疼吗?现在,有了简单商城系统小程序,一切变得轻松又快捷!无需复杂的编程知识&a…

Stable Diffusion美得令人心动亚洲女性真人模型、提示词分享!

前言 提示词1: 电影灯光 Prompt: xxmixgirl, a mysterious woman, fog, movie lights, 【colors】 theme, smiling 提示词:神秘女子,迷雾,电影灯光,【颜色】主题,微笑 颜色:可以指定一种或多种…

晨持绪电商:大学毕业生投资抖音网店怎么样

在这个数字化飞速发展的时代,传统的职业路径已不再是唯一的选择。对于充满激情和创意的大学毕业生来说,投资抖音网店或许是一个颇具前景的选择。 抖音作为一个流量巨大的社交媒体平台,为年轻人提供了一个展示自我、推广产品的绝佳舞台。与传统…

Kotlin/Android中执行网络请求

方式一:使用okhttp3 okhttp官网 okhttp3 github地址 打开build.gradle.kts文件加入依赖 dependencies {implementation("com.squareup.okhttp3:okhttp:4.9.0") }在IDEA的Gradle面板点击reload按钮便会自动下载jar 使用网络请求时需要把网络的权限打开&a…

Web缓存—Nginx和CDN应用

目录 一、代理的工作机制 二、概念 三、作用 四、常用的代理服务器 二.Nginx缓存代理服务器部署 1.在三台服务器上部署nginx 此处yum安装 2.准备测试界面 三、CDN概念及作用 1.CDN的工作过程 一、代理的工作机制 (1)代替客户机向网站请求数据…

echarts横向立体3D柱状图

实现原理:series中包含两个普通的柱状图bar,其宽度各占一半且设置间距barGap为0,再添加一个象形柱状图pictorialBar,symbol设为菱形diamond,调整其位置大小层级等数据以达到覆盖在柱状图顶部的立体效果。 运行效果&am…

找不到d3dcompiler43.dll如何修复,分享5种方法助你解决问题

电脑提示找不到d3dcompiler43.dll,这是一个常见的小问题,主要是由于该dll文件丢失所导致。在日常使用电脑的过程中,我们可能会遇到此类丢失问题。为了解决该问题,我们只需进行相关的文件修复操作即可。以下是几种常见的d3dcompile…

电子元器件基础知识总结

1.0 电阻 电阻的定义:导体对电流的阻碍作用称之为电阻【每一种导体都有内阻的存在】 闭合的电路中电子的移动输出有多快?电子在导体中的移动速度是很慢的 【铜线中电流的移动速度】 电子受到原子核的束缚,移动的速度很慢,在电压足…

平安养老险蚌埠中心支公司开展“78奋力前行”健步走活动

7月4日,平安养老保险股份有限公司(以下简称“平安养老险”)蚌埠中心支公司组织员工在张公山公园开展“78奋力前行”健步走活动,传递保险行业的正能量,展现平安养老险的活力与风采。 平安养老险蚌埠中心支公司员工身着…

2024年7月最佳免费天气API接口推荐

在我们的日常生活中,天气扮演着一个至关重要的角色,它影响着我们的情绪、健康、日常安排和商业决策。无论是计划一次户外活动、安排农作物种植,还是确保旅行安全,天气信息的准确性和及时性至关重要。随着技术的进步,天…

百度出品_文心快码Comate提升程序员效率

1.文心快码 文心快码包含指令、插件 和 知识三种功能, 1)指令包含Base64编码、Base64解码、JSON转TS类型、JSON转YAML、JWT解码喂JSON。 2)插件包含 3)指令包含如下功能: 官网链接

vue前端实现导出页面为word(两种方法)

将vue页面导出为word文档,不用写模板,直接导出即可。 第一种方法(简单版) 第一步:安装所需依赖 npm install html-docx-js -S npm install file-saver -S第二步:创建容器,页面使用方法 注意:在当前页面引…

阿里云centos 取消硬盘挂载并重建数据盘信息再次挂载

一、取消挂载 umount [挂载点或设备] 如果要取消挂载/dev/sdb1分区,可以使用以下命令: umount /dev/sdb1 如果要取消挂载在/mnt/mydisk的挂载点,可以使用以下命令: umount /mnt/mydisk 如果设备正忙,无法立即取消…

ESP32CAM物联网教学09

ESP32CAM物联网教学09 摄像头配上显示屏 小智给摄像头配上了一块液晶显示屏,ESP32Cam变得更加酷炫了,应用也更加广泛了。 TFT彩色显示屏从第一课的CameraWebServer开始,我们一直都是利用浏览器来查看显示摄像头的视频流,都需要借助这个网页提供的服务。 可以让ESP32Cam开…

通过营销本地化解锁全球市场

在一个日益互联的世界里,企业必须接触到全球各地的不同受众。营销本地化是打开这些全球市场的关键。它包括调整营销材料,使其与不同地区的文化和语言细微差别产生共鸣。以下是有效的营销本地化如何推动您的全球扩张,并用实际例子来说明每一点…