PXE + Kickstart 无人值守装机

news2024/9/24 23:32:47

目录

一、简介

二、PXE工作流程

三、搭建 PXE 远程安装服务器

1.安装包准备

2.环境准备

3.搭建PXE远程安装服务器

(1)关闭 firewalld 和 selinux

(2)配置双网卡

1)添加硬件网卡

2)编辑网卡配置文件

3)重启网卡 

(3) 安装并启动 DHCP 服务

1)安装DHCP

2)配置DHCP服务

3)启动DHCP

(4)安装并启动 ftp 服务

1)安装 ftp 服务

2)配置共享目录 

3)启动 ftp 服务 

 4)检查 ftp 服务启动状态,以及镜像共享情况

(5)安装并启动TFTP服务

1)安装TFTP

2)配置TFTP服务

3)启动 TFTP 服务

(6)准备 PXE 引导程序

1)查找pxelinux.0是哪个软件包安装的

2)安装syslinux服务

3)复制系统引导文件至共享目录

4)将内核文件、引导菜单文件放到tftp共享目录下

(7)配置启动菜单文件

4.实现Kickstart无人值守安装

(1)准备安装应答文件

(2)打开“Kickstart 配置程序”窗口

(3)配置kickstart选项

1)基本配置

2)安装方法

3)引导装载程序选项

4)分区信息

5)网络配置

6)防火墙配置

7)安装后脚本

8)保存自动应答文件

9)配置需要安装的软件包

10)编辑引导菜单文件 default,添加 ks 引导参数

(4)验证无人值守安装


一、简介

       PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。PXE协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统(共享的操作系统引导程序)通过网络下载到本地运行。PXE在其启动过程中,客户端请求服务器分配IP地址,之后PXE Client使用TFTP Client通过TFTP(Trivial File Transfer Protocol)协议下载启动安装程序所需的文件。

       PXE网络安装:客户机通过支持PXE的网卡向网络中发送请求DHCP信息的广播请求IP地址等信息,DHCP服务器给客户端提供IP地址和其它信息(TFTP服务器、启动文件等),之后请求并下载安装需要的文件。

       Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录需要人工干预填写的各种参数,并记录生成一个名为anaconda-ks.cfg的文件。

二、PXE工作流程

PXE工作流程:

    1.PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP和安装相关文件

    2.DHCP 服务器返回分配给客户机的IP地址,以及PXE文件的存放位置(TFTP服务器的地址)

    3.PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件(启动引导程序,选择内核版本,过   程不可见)

    4.PXE Client 取得pxelinux.0 文件后之执行该文件

    5.根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统

    6.进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装相关软件包

    7.pexlinux:启动菜单(选择操作系统) vmliunx(内核文件) initrd(辅助文件)

三、搭建 PXE 远程安装服务器

1.安装包准备

vsftpd //用来放置安装镜像,通过ftp访问镜像安装

dhcp.x86_64 12:4.2.5-7pd-3.0.2-27.el7.x86_64.r9.el7.centos //用来给客户机分配ip

syslinux-4.05-15.el7.x86_64.rpm //用来提供pxe的引导程序

tftp-server.x86_64 0:5.2-22.el7.rpm //用来提供引导镜像文件的下载

xinetd.x86_64 2:2.3.15-14.el7 //用来托管tftp

system-config-kickstart.noarch 0:2.9.7-1.el7.rpm //用来无人值守安装

2.环境准备

一台作为pxe服务器,一台作为测试安装客户机

主机服务器地址:192.168.94.19主机名:localhost

一台主机:1)配置双网卡 一个作用是dhcp,一个是使用网络源安装环境包

2)DHCP部署

3)tftp-server 服务器通过 TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。

4)syslinux //用来提供pxe的引导程序

5)xinetd //用来托管tftp

6)vsftpd //用来放置安装镜像,通过ftp访问镜像安装

7)kickstart //用来无人值守安装

3.搭建PXE远程安装服务器

(1)关闭 firewalld 和 selinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

setenforce 0
systemctl stop firewalld

systemctl disable firewalld

(2)配置双网卡

作用:一个作用是dhcp,一个是使用网络源安装环境包

1)添加硬件网卡

 2)编辑网卡配置文件
#查看新添加网卡设备名
ip link show | grep ens

cd /etc/sysconfig/network-scripts/

cp ifcfg-ens33 ifcfg-ens36

vim ifcfg-ens36

3)重启网卡 
systemctl restart network

systemctl status network

(3) 安装并启动 DHCP 服务

1)安装DHCP
yum -y install dhcp
#将dhcp配置模板复制到dhcp配置文件中
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
2)配置DHCP服务
vim /etc/dhcp/dhcpd.conf

subnet 192.168.188.0 netmask 255.255.255.0 {
	range 192.168.132.200 192.168.132.249;
	option domain-name-servers 114.114.114.114,8.8.8.8;
	option routers 192.168.188.2;
	default-lease-time 600;
	max-lease-time 7200;
	next-server 192.168.188.100;  #填写tftp服务器IP地址(本机)
	filename "pxelinux.0";        #填写引导文件名称
}
3)启动DHCP
systemctl start dhcpd && systemctl enable dhcpd

systemctl status dhcpd

(4)安装并启动 ftp 服务

       在http的网页共享目录下创建新目录,并将光盘挂载到此目录,实现光盘内容共享.

       主要目的是操作系统安装的最后一个步骤需要安装软件。

1)安装 ftp 服务
yum -y install vsftp
2)配置共享目录 
# 创建共享目录
mkdir /var/ftp/centos7
#挂载本地光盘镜像
vim /etc/fstab
/dev/sr0   /mnt/centos7   iso9660 defaults  0 0

#挂载
mount -a

#复制文件至 ftp 共享目录
cp -rf /mnt/centos7/* /var/ftp/centos7
3)启动 ftp 服务 
systemctl start vsftpd && systemctl enable vsftpd

systemctl status vsftpd

 4)检查 ftp 服务启动状态,以及镜像共享情况
#查看端口监听情况
ss -tlunp|grep vsftpd

文件管理器访问
ftp://192.168.106.252/centos7

(5)安装并启动TFTP服务

1)安装TFTP
#安装tftp服务
yum install -y tftp-server.x86_64

#安装xinetd对TFTP服务进行管理,tftp被xinet所托管,xinetd默认没有安装
#xinetd是新一代的网络守护进程服务程序,又叫超级Internet服务器。
#经常用来管理多种轻量级Internet服务。xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全。
yum install -y xinetd
2)配置TFTP服务
vim /etc/xinetd.d/tftp

service tftp
{
      socket_type		= dgram
      protocol			= udp
      wait				= yes   #yes表示客户机只能一台一台连接,no表示可以堕胎一起去连接
      user				= root
      server			= /usr/sbin/in.tftpd
      server_args		= -s /var/lib/tftpboot		#共享文件的路径(放在此目录下) 
      disable			= no    #开启tftp服务
      per_source		= 11    #通过限制一个主机的最大连接数,从而防止某个主机独占某个服务,这里每个IP地址的连接数是11个
      cps				= 100 2 #表示服务器最多启动100个连接,如果达到这个数目将停止启动新服务2秒。在此期间不接受任何请求
      flags			    = IPv4
}

3)启动 TFTP 服务
systemctl start xinetd && systemctl enable xinetd

systemctl start tftp && systemctl enable tftp

systemctl status xinetd.service && netstat -atnulp | grep xinet

(6)准备 PXE 引导程序

说明:

pxelinux.0是个二进制文件,主要作用相当于一个系统安装步骤的指引,引导客户端如何安装系统

yum provides /pxelinux.0        #查找这个文件是由哪个软件包安装的,当不是一个路径和一个软件包时用/

yum -y install syslinux

rpm -ql syslinux | grep pxelinux #查找pxe引导程序的位置

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #拷贝到tftp的根目录下,系统引导文件

注:只有安装了 system-config-kickstart 软件包,才会有/usr/share/syslinux/目录及目录中的文件

1)查找pxelinux.0是哪个软件包安装的
 yum provides */pxelinux.0

2)安装syslinux服务
yum -y install syslinux

3)复制系统引导文件至共享目录
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
4)将内核文件、引导菜单文件放到tftp共享目录下
#用来预加载的内核和驱动文件,然后使用预加载内核进行系统安装
cp -a /var/ftp/centos7/images/pxeboot/{vmlinuz,initrd.img}   /var/lib/tftpboot/
 

(7)配置启动菜单文件

       启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载驱动。默认的启动菜单文件为 default,应放置在 tftp 根目录的 pxelinux.cfg 子目录下,典型的启动菜单配置可参考以下操作自动或手动建立。至于为什么要是/var/lib/tftpboot/pxelinux.cfg/default文件,因为是由pxelinux.0这个文件决定好的

mkdir /var/lib/tftpboot/pxelinux.cfg        #默认pxelinux.cfg是没有的需要手动创建,注意它是一个目录而非文件虽然是以.cfg结尾

mkdir /var/lib/tftpboot/pxelinux.cfg

vim /var/lib/tftpboot/pxelinux.cfg/default
default auto         #指定默认入口名称,对应下面的label auto
prompt 1             #设置是否等待用户选择,“1”表示等待用户控制,0表示不等待用户控制,安装时会出现boot:如果按回车表示选择auto模式

label auto           #图形安装(默认)引导入口,label 用来定义启动项
kernel vmlinuz       #kernel 和 append用来定义引导参数
append initrd=initrd.img method=http://192.168.106.252/centos7

label linux text     #文本安装引导入口 出现boot:时输入linux text
kernel vmlinuz
append text initrd=initrd.img method=http://192.168.106.252/centos7

label linux rescue   #救援模式引导入口出现boot:时输入linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=http://192.168.106.252/centos7

4.实现Kickstart无人值守安装

(1)准备安装应答文件

#准备安装应答文件
yum install -y system-config-kickstart

(2)打开“Kickstart 配置程序”窗口

通过桌面菜单“应用程序”–>“系统工具”–>“Kickstart” 打开

执行 “system-config-kickstart” 命令打开

(3)配置kickstart选项

1)基本配置

默认语言设为“中文(简体)”

时区设为“Asia/Shanghai”

设置root密码

高级配置中勾选“安装后重启”。

2)安装方法

3)引导装载程序选项

“安装类型”:安装新引导装载程序

“安装选项”:在主引导记录(MBR)中安装引导装载程序

4)分区信息

主引导记录:不清除主引导记录

分区:删除所有现存分区

磁盘标签:初始化磁盘标签

布局:添加分区

挂载点:/boot,文件系统类型:xfs,固定大小:500M

文件系统类型:swap,固定大小:4096M

挂载点:/home,文件系统类型:xfs,固定大小:4096M

挂载点:/,文件系统类型:xfs,使用磁盘上全部未使用空间

5)网络配置

添加网络设备“ens33”

网络类型设为“DHCP”

6)防火墙配置

禁用 SELinux、禁用防火墙

7)安装后脚本
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
echo “[local]
name=local
baseurl=ftp://192.168.188.100/centos7
enabled=1
gpgcheck=0” > /etc/yum.repos.d/local.repo

8)保存自动应答文件

选择“Kickstart 配置程序”窗口的“文件”–>“保存”命令,选择指定保存位置,文件名为ks.cfg

默认保存在/root/ks.cfg

9)配置需要安装的软件包

将文件放到/var/ftp下 

#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$CqygEHhD$j13QTJ13yN.ZK0llPk70U/
# System language
lang zh_CN
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled


# Firewall configuration
firewall --disabled
# Network information
network  --bootproto=dhcp --device=ens33
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# Use network installation
url --url="ftp://192.168.188.100/centos7"
# System bootloader configuration
bootloader --location=mbr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=500
part /home --fstype="xfs" --size=4096
part swap --fstype="swap" --size=4096
part / --fstype="xfs" --grow --size=1

%packages
@^gnome-desktop-environment  #安装桌面环境(需要保证共享的操作系统镜像包含这些组件集合)
@base  ##安装基础软件包
@core
@desktop-debugging
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony
%end

#最小化安装(当共享镜像为简洁版时,采用最小化安装)
#%packages
#@core
#%end

%post
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
echo “[local]
name=local
baseurl=ftp://192.168.188.100/centos7
enabled=1
gpgcheck=0” > /etc/yum.repos.d/local.repo
%end
10)编辑引导菜单文件 default,添加 ks 引导参数
vim /var/lib/tftpboot/pxelinux.cfg/default

default auto         #指定默认入口名称,对应下面的label auto
prompt 0             #设置是否等待用户选择,“1”表示等待用户控制,0表示不等待用户控制,安装时会出现boot:如果按回车表示选择auto模式

label auto           #图形安装(默认)引导入口,label 用来定义启动项
kernel vmlinuz       #kernel 和 append用来定义引导参数
append initrd=initrd.img method=ftp://192.168.188.100/centos7 ks=ftp://192.168.188.100/ks.cfg

label linux text     #文本安装引导入口 出现boot:时输入linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.188.100/centos7 ks=ftp://192.168.188.100/ks.cfg

label linux rescue   #救援模式引导入口出现boot:时输入linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.188.100/centos7 ks=ftp://192.168.188.100/ks.cfg

(4)验证无人值守安装

新建虚拟机内存至少为2G,网卡需要与dhcp服务器网络相通。

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

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

相关文章

强化学习,第 2 部分:政策评估和改进

目录 一、介绍 二、关于此文章 三、求解贝尔曼方程 四、策略评估 4.1 更新变体 4.2 例描述 五、策略改进 5.1 V函数描述 5.2 政策改进定理 六、策略迭代 七、值迭代 7.1 算法描述 7.2 异步值迭代 八、广义策略迭代 九、结论 一、介绍 R强化学习是机器学习中的一…

一屏万象,场景无限:蓝牙墨水屏标签多功能多场景应用带您领略未来

在数字化浪潮汹涌澎湃的今天,智能科技产品层出不穷,它们不仅极大地改变了我们的生活方式,更在无形中拓宽了我们的视野。而今,一款融合了创新技术与实用性于一体的蓝牙墨水屏标签,正以其多功能多场景应用的特性&#xf…

【C++/STL】vector(常见接口、模拟实现、迭代器失效)

🌈个人主页:秦jh_-CSDN博客🔥 系列专栏: https://blog.csdn.net/qinjh_/category_12575764.html?spm1001.2014.3001.5482 目录 简单使用 常见接口 find insert vector模板 模拟实现 尾插 构造 迭代器失效 使用memcpy拷贝问…

Web漏洞:网络安全的隐形杀手

随着互联网的深入发展,Web应用程序已成为企业和个人生活中不可或缺的一部分。然而,随着Web应用的普及,网络安全问题也日益凸显,其中Web漏洞是网络安全领域面临的重大挑战之一。本文将详细探讨一些常见的Web漏洞及其潜在的危害&…

使用 Azure DevOps 和 Azure Web Apps 进行 .NET Core 应用的 CI/CD

概览 在现代软件开发中,快速部署和高效的版本控制系统是非常关键的。通过利用 Azure DevOps 和 Azure Web Apps,开发团队可以实现自动化的持续集成和持续部署(CI/CD),从而加快从开发到生产的过程。接下来我们一步步来…

深入探索MySQL SELECT查询:从基础到高级,解锁数据宝藏的密钥

系列文章目录 更新ing... MySQL操作全攻略:库、表、数据、事务全面指南深入探索MySQL SELECT查询:从基础到高级,解锁数据宝藏的密钥MySQL SELECT查询实战:练习题精选,提升你的数据库查询技能PyMySQL:连接P…

灯塔工厂产业数字化平台解决方案(50页PPT)

方案介绍: 随着工业4.0和智能制造的快速发展,传统工厂正面临着转型升级的迫切需求。为了提升生产效率、优化资源配置、增强市场竞争力,我们推出了灯塔工厂产业数字化平台解决方案。该方案旨在通过先进的信息技术手段,将传统工厂转…

感谢信∣高成长型动力电池供应商『华鼎国联』采购管理平台项目上线,企企通SRM加速新能源汽车发展新质生产力

近日,企企通收到来自华鼎国联四川动力电池有限公司(以下简称“华鼎国联”)的感谢信,对企企通团队在采购数字化项目实施中所付出的努力表示感谢。 华鼎国联在感谢信中特别指出,回首披荆斩棘的2023年,企企通的…

通过css实现------简单边框流动特效

效果展示 代码部分 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice…

阿里云产品DTU评测报告(三)

这阿里云产品DTU评测报告&#xff08;三&#xff09; 连接物联网平台创建项目 连接物联网平台 在开始连接物联网平台之前&#xff0c;首先需要下载开发工具Visual Studio Code 开发工具&#xff0c;开发工具可以到https://code.visualstudio.com/ 去查找下载&#xff0c;下载完…

9.Redis之list类型

list相当于链表、数据表 1.list类型基本介绍 列表中的元素是有序的"有序"的含义,要根据上下文区分~~有的时候,谈到有序,指的是"升序","降序”有的时候,谈到的有序,指的是, 顺序很关键~~如果把元素位置颠倒,顺序调换.此时得到的新的 List 和之前的 Li…

神奇动物在哪里?斯洛文尼亚旅游之野生动物寻踪

不仅拥有优美动人的自然风光&#xff0c;斯洛文尼亚还以其丰富的生物多样性而闻名。得益于国家对大自然开展的保护工作&#xff0c;斯洛文尼亚超过三分之一的国土面积都被规划为保护区&#xff0c;拥有约1.5万种动物和6000种植物&#xff0c;其中不乏众多特有、稀有和濒危动植物…

如何选择一款开放式耳机?六大独家选购技巧超详细汇总!

​喜欢户外活动的朋友们&#xff0c;你们都是懂得享受生活的达人吧&#xff01;想象一下&#xff0c;在户外活动时&#xff0c;如果能有一副既适合场景又提供超棒音乐体验的耳机&#xff0c;那该多完美啊&#xff01;这时候&#xff0c;开放式耳机就闪亮登场了&#xff01;它的…

存储方式 - 前端学习

1. cookie是什么&#xff1f;你了解cookie吗&#xff1f; 在计算机领域中&#xff0c;特指一种由服务器发送到用户浏览器并保存在用户计算机上的小型文本文件。这个文件可以被服务器用来识别用户身份、跟踪用户活动、保存用户设置等。它通常由名称、值、域名、路径、过期时间等…

外贸邮箱怎么注册

外贸邮箱指的是用于外贸业务的电子邮箱&#xff0c;其功能比一般的电子邮箱更加专业化。注册外贸邮箱既能提高工作效率&#xff0c;又能展示企业的专业性。那么如何注册外贸邮箱呢&#xff1f;本文将详细介绍注册外贸邮箱的步骤和注意事项。 一、选择邮箱服务商 注册外贸邮箱首…

【408真题】2009-19

“接”是针对题目进行必要的分析&#xff0c;比较简略&#xff1b; “化”是对题目中所涉及到的知识点进行详细解释&#xff1b; “发”是对此题型的解题套路总结&#xff0c;并结合历年真题或者典型例题进行运用。 涉及到的知识全部来源于王道各科教材&#xff08;2025版&…

byzer plugin install log

离线插件参考地址&#xff1a; Byzer Documentation 离线安装方式&#xff08;错误过程记录&#xff09;&#xff1a; 参考文档&#xff1a;https://docs.byzer.org/#/byzer-lang/zh-cn/extension/README Byzer-lang 支持插件安装&#xff0c;删除&#xff0c;获取列表等。安装…

力扣hot100:146. LRU 缓存

力扣hot100&#xff1a;146. LRU 缓存 听说华为实习笔试考了这题 如何使得插入操作时 O ( 1 ) O(1) O(1)呢&#xff1f;我们需要维护一个时间的长短&#xff0c;以便于取出离现在最长的时间&#xff0c;这个时间比较容易实现&#xff0c;我们维护一个time表示当前时间&#x…

OrangePi AIpro开箱评测

开箱评测 有幸受邀参与了CSDN与OrangePi组织的评测活动&#xff0c;今天刚收到快递。拆开快递能看到保护盒、电源、双头typec线这三样&#xff08;充电器和线有保护膜的我先拆掉了&#xff09; 打开保护盒&#xff0c;能看到上下两块黑色海棉包裹的开发板&#xff08;保护得不…

Java学习【面向对象综合练习——实现图书管理系统】

Java学习【面向对象综合练习——实现图书管理系统】 前期效果图书的创建用户的创建操作的实现完善操作显示图书查找图书新增图书借阅图书归还图书删除图书 前期效果 用户分为普通用户和管理员&#xff0c;登录进系统之后可以对图书进行一系列操作&#xff0c;此时我们要明白&am…