Linux实验记录:使用PXE+Kickstart无人值守安装服务

前言:

本文是一篇关于Linux系统初学者的实验记录。

参考书籍:《Linux就该这么学》

实验环境:

VmwareWorkStation 17——虚拟机软件

RedHatEnterpriseLinux[RHEL]8——红帽操作系统

备注:

  实际生产中安装操作系统的工作,如果使用光盘镜像来安装操作系统,效率会相当低下。通过无人值守安装服务的PXE + Kickstart服务程序,搭建出一套可批量安装Linux系统的无人值守安装系统。

需手动安装部署:PXE+TFTP+FTP+DHCP+Kickstart等程序服务

正文:

   PXE(Preboot eXecute Environment,预启动执行环境)是由Intel公司开发的技术,能够让计算机通过网络来启动操作系统(网卡需支持PXE技术),主要用于在无人值守安装系统中引导客户端主机安装Linux操作系统。

Kickstart是一种无人值守的安装方式,其工作原理是预先把原本需要运维人员手动填写的参数保存成一个ks.cfg文件,当安装过程中需要填写参数时则自动匹配Kickstart生成的文件。

所以只要Kickstart文件包含了安装过程中需要人工填写的所有参数,那么从理论上来讲完全不需要运维人员的干预,就可以自动完成安装工作。

  由于当前客户端主机没有完整的操作系统,因此也就不能完成FTP协议的验证了,所以需要使用TFTP协议帮助客户端获取引导及驱动文件。vsftp服务程序用于将完整的系统安装镜像通过网络传输给客户端。

(也可以使用httpd来代替vsftpd服务程序)

实验准备:

服务名称主要作用
dhcpd分配网卡信息及指引获取驱动文件
tftp-server提供驱动及引导文件的传输
SYSLinux提供驱动及引导文件
vsftpd提供完整系统镜像的传输
Kickstart提供安装过程中选项的问答设置

配置DHCP服务程序:

  DHCP服务程序用于为客户端主机分配可用的IP地址,而且这是服务器与客户端主机进行文件传输的基础,因此要先行配置DHCP服务程序。

主机名称操作系统IP地址
无人值守系统RHEL 8192.168.10.10
客户端未安装操作系统-

iptables -F
systemctl stop firewalld
dnf install -y dhcp-server

这里配置文件使用的配置与一般配置的区别:

允许了BOOTP引导程序协议,旨在让局域网内暂时没有操作系统的主机也能获取静态IP地址;

在配置文件的最下面加载了引导驱动文件 pxelinux.0

其目的是让客户端主机获取到IP地址后主动获取引导驱动文件。

allow booting;
allow bootp;
ddns-update-style none;
ignore client-updates;
subnet 192.168.10.0 netmask 255.255.255.0 {option subnet-mask                      255.255.255.0;option domain-name-servers              192.168.10.10;range dynamic-bootp 192.168.10.100      192.168.10.200;default-lease-time                      21600;max-lease-time                          43200;next-server                             192.168.10.10;filename                                "pxelinux.0";
}

这一步如果出错,说明没有正确配置IP地址。

查看并确认服务状态:

systemctl status dhcpd

 配置TFTP服务程序:

vsftpd允许用户以匿名开放模式、本地用户模式、虚拟用户模式来进行访问认证。

但是当前客户机还没有安装操作系统,如何进行登录认证?

TFTP作为一种基于UDP协议的简单文件传输协议,为客户端主机提供引导及驱动文件。

当客户端主机有了基本的驱动程序之后,再通过vsftpd服务将完整的光盘镜像文件传输过去。

dnf install -y tftp-server xinetd

TFPT是一种非常精简的文件传输服务程序,它的运行和关闭是由xinetd网络守护进程服务来管理的。xinetd服务程序会同时监听系统的多个端口,然后根据用户请求的端口号调取相应的服务程序来相应用户的请求。需要开启TFTP服务程序时,只需在xinetd服务程序的配置文件中把disable参数改成no就可以了。如果配置文件不存在,需手动创建。

vim /etc/xinetd.d/tftp
service tftp
{socket_sype     = dgramprotocl         = udpwait            = yesuser            = rootserver          = /usr/sbin/in.tftpdserver_args     = -s /var/lib/tftpbootdisable         = noper_source      = 11cpd             = 100 2flags           = IPv4}       

配置SYSLinux服务程序:

SYSLinux是一个用于提供引导加载的服务程序。与其说SYSLInux是一个服务程序,不如说是一个包含了很多引导文件的文件夹。在安装好SYSLinux服务程序后。

/usr/share/syslinux目录中会出现很多引导文件。

dnf install -y syslinux

首先,需要把SYSLinux提供的引导文件(pxelinux.0)复制到TFTP服务程序的默认目录中,这样客户端主机就能够顺利地获取到引导文件了。另外在RHEL 8系统光盘镜像中也有一些需要调取的引导文件。

确认光盘镜像已经被挂载到/media/cdrom后,使用复制命令将光盘镜像中自带的一些引导文件也复制到TFTP服务程序的默认目录中。

cd /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 .
cp /media/cdrom/images/pxeboot/* .
cp /media/cdrom/isolinux/* .

(.)表示当前工作目录。上述cp命令表示将文件复制到当前工作目录(/var/lib/tftpboot)中 

 

 在TFTP服务程序的目录中新建pxelinux.cfg目录。

将系统光盘中的开机选项菜单复制到该目录中,并命名为default。

mkdir pxelinux.cfg
cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default

默认的开机菜单中有三个选项:安装系统、对安装介质进行检验、排错模式。

编辑default文件,帮助客户端自动选择。

line1:default ——linux

line 64 + :ftp://192.168.10.10 ks=ftp://192.168.10.10/pub/ks.cfg quiet

 

 配置vsftpd服务程序

dnf install -y vsftpd
vim /etc/vsftpd/vsftpd.conf

systemctl restart vsftpd
systemctl enable vsftpd
cp -r /media/cdrom/* /var/ftp
setsebool -P ftdp_connect_all_unreserved=on

创建Kickstart应答文件

  Kickstart不是一个服务程序,而是一个应答文件。

Kickstart应答文件中包含了系统安装过程中需要使用的选项和参数信息,系统可以自动调取这个应答文件的内容,从而彻底实现无人值守安装系统。

在root管理员的家目录中有一个名为:anaconda-ks.cfg的文件,就是应答文件。

cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
chmod +r /var/ftp/pub/ks.cfg

line1-10:表示安装硬盘的名称为sda及使用LVM技术。

line 8:软件仓库,改为由FTP服务器提供的网络途径

line 10:由CDROM改为网络安装源:

line 11-20:keyboard参数为硬盘类型,一般不需修改

line 17:网卡信息一定要处于DHCP模式

line 21-30:timezone参数定义了系统默认时区为“上海”。

line:31-44:表示要安装的软件来源。

graphical-server-environment即带有图形化界面的服务器环境,对应安装界面中的Server With GUI选项

vim /var/ftp/pub/ks.cfg
#version=RHEL8
ignoredisk --only-use=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel
# Use graphical install
graphical
repo --name="AppStream" --baseurl=ftp://192.168.10.10/AppStream
# Use CDROM installation media
url --url=ftp://192.168.10.10/BaseOS
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8# Network information
network  --bootproto=dhcp --device=ens160 --onboot=on --ipv6=auto --activate
network  --hostname=linuxprobe.com
# Root password
rootpw --iscrypted $6$EzIFyouUyBvWRIXv$y3bW3JZ2vD4c8bwVyKt7J90gyjULALTMLrnZZmvVujA75EpCCn50rlYm64MHAInbMAXAgn2Bmlgou/pYjUZzL1
# X Window System configuration information
xconfig  --startxonboot
# Run the Setup Agent on first boot
firstboot --enable
# System services
services --disabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc --nontp
user --name=linuxprobe --password=$6$a5fEjghDXGPvEoQc$HQqzvBlGVyhsJjgKFDTpiCEavS.inAwNTLZm/I5R5ALLKaMdtxZoKgb4/EaDyiPSSNNHGqrEkRnfJWap56m./. --iscrypted --gecos="linuxprobe"%packages
@^graphical-server-environment%end%addon com_redhat_kdump --disable --reserve-mb='auto'%end%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

自动部署客户机:

  采用下面步骤建立虚拟主机时,一定要把客户端的网络模式设定成与服务端一致的“仅主机模式”
Step1:

  新建虚拟机向导——自定义——下一步——Workstation16.x

Step2:

  稍后安装操作系统——下一步

Step3:

  客户操作系统设置为Linux,版本“Red Hat Enterprise Linux 8 64”——下一步

Step4:

  对虚拟机进行命名并设置安装位置

Step5:

  设置虚拟主机的网络连接类型为“使用仅主机模式网络”,随后的SCSI控制器类型选择默认的LSI Logic 

Step6:

  设置硬盘类型并指定容量。设置“虚拟磁盘类型”为SCSI或SATA。

Step7:

  结束“新建虚拟机向导程序”后,找到自定义硬件,把网络适配器也设置为“仅主机模式”。

  现在,PXE + Kickstart 无人值守安装系统与虚拟主机都准备好了。

在生产环境中,只需将配置妥当的服务器上架,联通服务器和客户端主机之间的网线,然后启动客户端主机即可。

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

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

相关文章

AI:134-基于深度学习的社交媒体图像内容分析

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

Apache celeborn 安装及使用教程

1.下载安装包 https://celeborn.apache.org/download/ 测0.4.0时出现https://github.com/apache/incubator-celeborn/issues/835 2.解压 tar -xzvf apache-celeborn-0.3.2-incubating-bin.tgz 3.修改配置文件 cp celeborn-env.sh.template celeborn-env.shcp log4j2.xml.…

阿里巴巴Java开发手册解读-黄山版1.7.1

《Java 开发手册》是 Java 社区爱好者的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,整理成册后,众多社区开发者踊跃参与打磨完善,系统化地整理成册,当前的最新版本是黄山版。现代软件行业的高速…

创建vue3项目(基础)

首先打开自己的目录文件输入指令cmd 出现命令行工具 输入指令vue create 项目名称 按回车 选择第三个自己配置 根据需求选择 回车 选择自己需要的版本 出现这个 一直按回车大约5下或者6下 创建完毕 结束 感谢观看

音视频数字化(数字与模拟-电影)

针对电视屏幕,电影被称为“大荧幕”,也是娱乐行业的顶尖产业。作为一项综合艺术,从被发明至今,近200年的发展史中,无人可以替代,并始终走在时代的前列。 电影回放的原理就是“视觉残留”,也就是快速移过眼前的画面,会在人的大脑中残留短暂的时间,随着画面不断地移过,…

大学生课程|统计基础与python分析3|实战:不同行业工龄与薪水的线性回归模型(免费下载所有课程材料)

此系列为基础学习系列,请自行学习,课程资源免费获取地址: https://download.csdn.net/download/weixin_68126662/88866689 目录 此系列为基础学习系列,请自行学习 1.读取数据 2.绘制离散点图 3.模型搭建 4.模型可视化 5.线…

opencv绘制基本图形,在图片上添加文字

文章目录 1.opencv绘制基本图形1. 画直线, cv2.line( )2. 画长方形,cv2.rectangle( )3. 画圆型,cv2.circle( )4. 画折线,cv2.polylines( ) 2.图片上显示文字 本章主要阐述利用opencv绘制一些常见的图形方法和技巧,以及…

解锁苏宁电商数据新纪元:关键字搜索API接口引领业务升级

苏宁关键字搜索API接口:电商数据探索的新篇章 一、引言 在电商领域,数据的重要性不言而喻。为了帮助开发者更高效地获取和利用电商数据,苏宁开放平台提供了关键字搜索API接口。本文将带你深入了解这一接口的技术细节,让你在电商…

【大数据】Flink 内存管理(三):TaskManager 内存分配(理论篇)

《Flink 内存管理》系列(已完结),共包含以下 4 篇文章: Flink 内存管理(一):设置 Flink 进程内存Flink 内存管理(二):JobManager 内存分配(含实际…

wcf 数据绑定 简单实验 用代码绑定

1.概要 1.1 说明 使用代码的方式绑定。 1.2 要点 var bindo new Binding("Text");bindo.Source textso;//绑定源text1.SetBinding(TextBox.TextProperty, bindo);//绑定数据源和对象 2.代码 <Window x:Class"WpfApp4.MainWindow"xmlns"http…

[深度学习]yolov9+deepsort+pyqt5实现目标追踪

【YOLOv9DeepSORTPyQt5追踪介绍】 随着人工智能技术的飞速发展&#xff0c;目标追踪在视频监控、自动驾驶等领域的应用日益广泛。其中&#xff0c;YOLOv9作为先进的目标检测算法&#xff0c;结合DeepSORT多目标追踪算法和PyQt5图形界面库&#xff0c;能够为用户提供高效、直观…

故障排除:Failed to load SQL Modules into database Cluster

PostgreSQL 安装和故障排除 重新安装前的准备工作 在重新安装 PostgreSQL 之前&#xff0c;确保完成以下步骤&#xff1a; 重新卸载 PostgreSQL 并重启电脑。 删除以下目录&#xff1a; C:\Program Files\PostgreSQL\13C:\Users\admin\AppData\Roaming\pgadmin 重启安装过…

SpringBoot:自定义starter

点击查看&#xff1a;LearnSpringBoot08starter 点击查看&#xff1a;LearnSpringBoot08starterTest 点击查看更多的SpringBoot教程 一、主要流程 1. 先创建空的project 2. 打开空的project 结构 图选中model 点击 3. 创建 model&#xff08;Maven&#xff09;启动器 提…

Python入门必学:单引号、双引号与三引号的差异与应用

Python入门必学&#xff1a;单引号、双引号与三引号的差异与应用 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 &#x1f448; 希望得…

福特锐界2021plus 汽车保养手册

福特锐界2021plus汽车保养手册两页&#xff0c;零部件保养要求&#xff0c;电子版放这里方便查询&#xff1a;

opengles 顶点坐标变换常用的矩阵(九)

文章目录 前言一、opengles 常用的模型矩阵1. 单位矩阵2. 缩放矩阵3. 位移矩阵4. 旋转矩阵二、第三方矩阵数学库1. glm1.1 ubuntu 上安装 glm 库1.2 glm 使用实例1.2.1 生成一个沿Y轴旋转45度的4x4旋转矩阵, 代码实例如下1.2.2 生成一个将物体移到到Z轴正方向坐标为5处的4x4 vi…

【数据分析之Numpy基础004】数学运算大揭秘:轻松玩转ndarray的强大实力

ndarray的数学运算是一项非常重要的操作&#xff0c;包括不同对象之间的四则运算&#xff0c;三角函数变换、求和、求平均等操作 1、四则运算 如果参与运算的两个对象都是ndarray&#xff0c;并且形状相同&#xff0c;那么就可以进行对位之间的四则&#xff08; - * / &#x…

亲测有效:阿里云域名优惠口令注册/续费/转入可用!

2024年阿里云域名优惠口令&#xff0c;com域名续费优惠口令“com批量注册更享优惠”&#xff0c;cn域名续费优惠口令“cn注册多个价格更优”&#xff0c;cn域名注册优惠口令“互联网上的中国标识”&#xff0c;阿里云优惠口令是域名专属的优惠码&#xff0c;可用于域名注册、续…

【项目实战】帮美女老师做一个点名小程序(Python tkinter)

前言 博主有一个非常漂亮的老师朋友&#x1f60d;。最近&#xff0c;她急需一个能够实现随机点名的小程序&#xff0c;而博主正好擅长这方面的技术&#x1f90f;。所以&#xff0c;今天博主决定为她制作一个专门用于点名的小程序&#x1f4aa;。 博主在美女老师面前吹完牛皮之…

Unity Shader ASE基础效果思路与代码(三):Shader混合模式、深度渐变的扩散扫描、软粒子

Unity Shader ASE基础效果思路与代码(三)&#xff1a;Shader混合模式、深度渐变的扩散扫描、软粒子 文章目录 Unity Shader ASE基础效果思路与代码(三)&#xff1a;Shader混合模式、深度渐变的扩散扫描、软粒子Unity Shader的混合模式深度渐变的扩散扫描效果展示&#xff1a;代…