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://www.hqwc.cn/news/488119.html

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

相关文章

【寸铁的刷题笔记】树、dfs、bfs、回溯、递归(二)

【寸铁的刷题笔记】树、dfs、bfs、回溯、递归(二) 大家好 我是寸铁👊 金三银四,树、dfs、bfs、回溯、递归是必考的知识点✨ 快跟着寸铁刷起来!面试顺利上岸👋 喜欢的小伙伴可以点点关注 💝 上期回顾 感谢大家的支持&am…

Vue3 (unplugin-auto-import自动导入的使用)

安装 参考链接 npm i -D unplugin-auto-importvite.config.ts里面配置 import AutoImport from unplugin-auto-import/viteAutoImport({imports:[ vue,vue-router]})重新运行项目会生成一个auto-imports.d.ts的文件 /* eslint-disable */ /* prettier-ignore */ // ts-nochec…

C# If与Switch的区别

在 switch 语句中使用表达式比较时,编译器会生成一个查找表,其中包含所有表达式的值和对应的 case 标签。因此,与使用常量或字面量比较相比,使用表达式比较可能会略微降低性能。 只有当 switch 语句中的所有 case 标签都使用常量或…

亿道丨三防平板丨加固平板丨为零售业提供四大优势

随着全球经济的快速发展,作为传统行业的零售业也迎来了绝佳的发展机遇,在互联网智能化的大环境下,越来越多的零售企业选择三防平板电脑作为工作中的电子设备。作为一种耐用的移动选项,三防平板带来的不仅仅是坚固的外壳。坚固耐用…

记录 使用FFMPEG 笔记本摄像头推流

一、使用 FFMPEG 测试摄像头拉流显示 # 获取摄像头名称 ffmpeg -list_devices true -f dshow -i dummy# 我笔记本上的摄像头名称如下 device_pnp_\\?\usb#vid_0408&pid_1020&mi_00#6&199e90f7&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global# 使…

Typora+PicGo+super-prefix+阿里云OSS设置图床

🌈个人主页:godspeed_lucip 🔥 系列专栏:实用工具 1 TyporaPicGosuper-prefix阿里云OSS设置图床1.1 设置阿里云OSS1.2 以时间戳命名图片1.2.1 安装super-prefix1.2.2 设置配置文件 1.3 批量上传图片遇到的问题1.4 参考资料 2 将ma…

【openGL教程 11 】关于坐标系统

目录 一、说明 二、坐标系统 2.1 概述 2.2 局部空间 2.3 世界空间 2.4 观察空间 2.5 裁剪空间 2.6 正射投影 2.7 透视投影 2.8 把它们都组合到一起 三、进入3D 四、更多的3D 4.1 立方体画法 4.2 Z缓冲区 4.3 更多的立方体 五、练习 一、说明 本篇是openGL学习中…

【Java程序设计】【C00284】基于Springboot的校园疫情防控管理系统(有论文)

基于Springboot的校园疫情防控管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的校园疫情防控系统 本系统分为系统功能模块、管理员功能模块以及学生功能模块。 系统功能模块:在系统首页可以查…

Openstack云计算框架及前期服务搭建

openstack介绍 Openstack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作,支持几乎所有的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台 ----百度百科 Openstack是一个云操作系统&a…

HTML+CSS:动态搜索框

效果演示 这段代码实现了一个简单的搜索栏效果。页面背景为从天蓝色到深蓝色的渐变色,搜索栏包括一个圆形背景的搜索图标和一个输入框。当用户点击搜索图标时,输入框会从搜索图标的位置滑出,显示一个输入框和一个清除按钮。用户可以在输入框中…

PyTorch概述(二)---MNIST

NIST Special Database3 具体指的是一个更大的特殊数据库3;该数据库的内容为手写数字黑白图片;该数据库由美国人口普查局的雇员手写 NIST Special Database1 特殊数据库1;该数据库的内容为手写数字黑白图片;该数据库的图片由高…

网关服务gateway注册Consul时报错Consul service ids must not be empty

网关服务gateway启动时,初始化Consul相关配置时报错。 Consul service ids must not be empty, must start with a letter, end with a letter or digit, and have as interior characters only letters, digits, and hyphen: cbda-server-gateway:10.111.236.142:…