实现PXE批量网络装机及kickstrat无人值守安装(富士山终究留不住欲落的樱花)

news/2024/4/26 15:24:46/文章来源:https://blog.csdn.net/Y0UZI/article/details/130367218

一、PXE概述和部署PXE批量装机

1.PXE简介

    PXE(预启动执行环境,在操作系统之前运行)是由Intel公司开发的网络引导技术,c/s架构,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。

2.PXE优点

  • 规模化:同时装配多台服务器,无需每一台单独- 安装操作系统;
  • 自动化:实现服务器的自动安装及自动配置各种服务;
  • 远程实现:不需要光盘、U盘等安装介质,方便快捷的同时又可以保障服务器安全。

3.搭建PXE网络体系前提条件

客户端

客户机的网卡要支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。一般大多数服务器主机都支持,只需在BIOS设置中允许从 Network 或 LAN 启动即可。

服务端

  • 需要有DHCP 服务以便为客户机自动分配地址、指定引导文件位置。
  • 服务器要通过 TFTP服务(简单文件传输协议)来提供系统内核和引导镜像文件的下载。
  • 服务器中使用FTP服务(或http/nfs)font> :提供yum安装源
  • 安装软件包syslinux :提供PXE引导程序

4.PXE实现过程

网卡需要查找相关的dhcp服务器(获取地址时间)

–> 找到后,dhcp服务器提供ip地址和引导程序(boot loader)的地址,还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)

–> 网卡使用tftp客户端把引导程序加载到内存中

–> bios执行引导程序

–> 引导程序会去TFTP去查找配置文件

–> 根据配置文件去引导安装系统

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

PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能够向客户机裸机发送 PXE引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。
(1)关闭防火墙和selinux

[root@localhost1 ~]#systemctl stop firewalld.service 
[root@localhost1 ~]#setenforce 0 

2)搭建本地yum仓库用于安装所需软件

[root@localhost1 ~]#mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost1 ~]#cd /etc/yum.repos.d/
[root@localhost1 yum.repos.d]#ls
CentOS-Base.repo       CentOS-fasttrack.repo  CentOS-Vault.repo
CentOS-CR.repo         CentOS-Media.repo      CentOS-x86_64-kernel.repo
CentOS-Debuginfo.repo  CentOS-Sources.repo
[root@localhost1 yum.repos.d]#mkdir repo.bak
[root@localhost1 yum.repos.d]#mv *.repo repo.bak/
[root@localhost1 yum.repos.d]#ls
repo.bak
[root@localhost1 yum.repos.d]#vim local.repo
[root@localhost1 yum.repos.d]#yum clean all
[root@localhost1 yum.repos.d]#yum makecache

(3)安装并启用 DHCP 服务

//下载dhcp服务
[root@localhost1 ~]#yum install -y dhcp//将dhcp配置模板文件拷贝到dhcp配置文件中
[root@localhost1 ~]#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf//修改dhcp配置文件
[root@localhost1 ~]#vim /etc/dhcp/dhcpd.conf 
ddns-update-style none;       --禁用 DNS 动态更新
next-server 192.168.116.10;      --指定 TFTP 服务器的地址
filename"pxelinux.0";      --指定 PXE 引导程序的文件名subnet 192.168.116.0 netmask 255.255.255.0 {   --声明要分配的网段地址range 192.168.116.100 192.168.116.200;      --设置ip地址池option routers 192.168.116.10;    --默认网关地址指向TFTP服务器的IP地址
}//开启dhcp服务
[root@localhost1 ~]#systemctl start dhcpd

(4)安装并启用 TFTP 服务

TFTP(简单文件传输协议):传输内核和引导文件
是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。

//下载tftp服务相关软件
[root@localhost1 ~]#yum install -y tftp-server
[root@localhost1 ~]#yum install -y xinetd.x86_64 //查找并修改TFTP服务配置文件 /etc/xinetd.d/tftp
[root@localhost1 ~]#cd /etc/xinetd.d/
[root@localhost1 xinetd.d]#ls
chargen-dgram   daytime-stream  echo-dgram     tftp
chargen-stream  discard-dgram   echo-stream    time-dgram
daytime-dgram   discard-stream  tcpmux-server  time-stream
[root@localhost1 ~]#vim /etc/xinetd.d/tftp
service tftp
{socket_type             = dgramprotocol                = udp     --TFTP使用UDP协议	wait                    = no    --no表示客户机可以多台一起连接,yes表示客户机只能逐台连接user                    = rootserver                  = /usr/sbin/in.tftpdserver_args             = -s /var/lib/tftpboot  --指定TFTP根目录(文件存储路径)disable                 = no    --no表示开启TFTP服务per_source              = 11cps                     = 100 2flags                   = IPv4
}//开启服务(注意顺序)
[root@localhost1 xinetd.d]#systemctl start tftp
[root@localhost1 xinetd.d]#systemctl start xinetd

(5)准备 Linux 内核、初始化镜像文件

//光盘中存放pxe启动文件的位置在 images/pxeboot/ 下
[root@localhost1 ~]#cd /mnt
[root@localhost1 mnt]#ls
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL
[root@localhost1 mnt]#cd images/
[root@localhost1 images]#ls
efiboot.img  pxeboot  TRANS.TBL
[root@localhost1 images]#cd pxeboot/
[root@localhost1 pxeboot]#ls
initrd.img   TRANS.TBL  vmlinuz^                      ^
初始化镜像文件           Linux内核//复制初始化镜像文件和Linux内核文件到TFTP根目录下
[root@localhost1 pxeboot]#cp vmlinuz /var/lib/tftpboot/
[root@localhost1 pxeboot]#cp initrd.img /var/lib/tftpboot/

(6)安装syslinux,准备pxe引导程序

syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。

//安装syslinux
[root@localhost1 pxeboot]#yum install -y syslinux//把pxe引导程序文件放到/var/lib/tftpboot/下
[root@localhost1 pxeboot]#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

(7)安装FTP服务,准备CentOS 7 安装源

//安装ftp服务
[root@localhost1 pxeboot]#yum install -y vsftpd
[root@localhost1 pxeboot]#cd /var/ftp
[root@localhost1 ftp]#ls
pub//在ftp根目录/var/ftp目录下创建一个目录centos7用于放Linux镜像文件
[root@localhost1 ftp]#mkdir centos7
[root@localhost1 ftp]#cp -rf /mnt/* /var/ftp/centos7/   --事先将镜像挂载在了mnt目录下//启动ftp服务
[root@localhost1 ftp]#systemctl start vsftpd

(8)配置启动菜单文件(默认的启动菜单文件在TFTP根目录的 pxelinux.cfg子目录下,文件名为default)

[root@localhost1 ftp]#cd /var/lib/tftpboot/
[root@localhost1 tftpboot]#ls
initrd.img  pxelinux.0  vmlinuz
[root@localhost1 tftpboot]#mkdir pxelinux.cfg
[root@localhost1 tftpboot]#cd pxelinux.cfg///编写配置
[root@localhost1 pxelinux.cfg]#vim default
default auto    --指定默认入口名称
prompt 1      --设置是否等待用户选择,“1”表示等待用户控制label auto    --图形安装(默认)引导入口,label 用来定义启动项
kernel vmlinuz   --指定内核
append initrd=initrd.img method=ftp://192.168.116.10/centos7  --指定初始化镜像文件(ftp源)label linux text  --文本安装引导入口
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.116.10/centos7label linux rescue  --急救模式引导入口
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.116.10/centos7

(9)测试安装
新键一台虚拟机并打开
在这里插入图片描述
(2)安装方法

在这里插入图片描述
(3)引导装载程序选项
在这里插入图片描述
(4)分区信息
在这里插入图片描述
在这里插入图片描述
(5)网络配置
在这里插入图片描述
(6)防火墙配置
在这里插入图片描述
(7)安装后执行的脚本
在这里插入图片描述
8)保存文件
选择“Kickstart 配置程序”窗口的“文件”–>“保存”命令,选择指定保存位置,默认文件名为ks.cfg ,保存在/root/ks.cfg
在这里插入图片描述
(9)配置需要安装的软件包

    可以根据需要将/root/anaconda-ks.cfg 的软件包安装脚本复制到 ks.cfg文件中,只需要复制%packages 到%end 部分即可。
//查看文件中的软件包字段
[root@localhost1 ~]#cat anaconda-ks.cfg ...%packages@^gnome-desktop-environment
@base
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony
kexec-tools%end//添加图形化界面安装
[root@localhost1 tftpboot]#vim /var/ftp/ks.cfg 
%packges
@^gnome-desktop-environment
%end

(10)编辑引导菜单文件 default,添加 ks 引导参数,使自定义配置生效

[root@localhost1 ~]#vim /var/lib/tftpboot/pxelinux.cfg/default 
default auto
prompt 0label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.116.10/centos7 ks=ftp://192.168.116.10/ks.cfg

(11)测试安装
当客户机每次以PXE方式引导时,将自动下载ks.cfg应答配置文件,然后根据其中的设置安装CentOS 7 系统,而无须手工干预。过程全自动化,不再演示。

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

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

相关文章

燃气管道定位83KHZ地下电子标识器探测仪ED-8000操作指南

1、电子标识器探测工作 燃气管道定位83KHZ地下电子标识器探测仪ED-8000,探测时周边 3 米范围内不能有其他探测仪,保持探测仪垂直向 下,探测仪的末端距离地面 5~10cm 左右,延估计的埋地管线走向水平移动探测仪。当发现持续信号且信…

RuntimeError: “LayerNormKernelImpl“ not implemented for ‘Long‘解决方法

问题出现的场景: 输入: import torch import torch.nn as nn atorch.randint(10,[3,4]) # atorch.DoubleTensor(a) # aa.double() print(a) layer_normnn.LayerNorm(4) layer_norm(a) 我就是想测试一下经过layernorm之后的输出会变成什么样 但是报错…

量表题如何分析?

量表是一种测量工具,量表设计标准有很多,并且每种量表的设计都有各自的特性,不同量表的特性也决定了测量尺度,在数据分析中常用的量表为李克特量表。李克特量表1932年由美国社会心理学家李克特在当时原有总加量表的基础上进行改进…

eBPF的发展演进---从石器时代到成为神(二)

3. 发展溯源 回顾技术的发展过程,就像观看非洲大草原日出日落一样,宏大的过程让人感动,细节部分引人深思。每天循环不辍,却又每天不同。 BPF的应用早已超越了它最初的设计,但如果要追溯BPF最初的来源,则必…

kubernetes为何需要默认的serviceaccount?

文章目录 什么是k8s的serviceAccount?为什么每一个ns下都有默认的sa?default sa yaml 默认的sa下都会挂一个secret,这个secret是从哪里来的?一道关于RBAC的CKA考题1、创建一个新的 ServiceAccount2、创建一个新的 Role3、创建一个…

2023_8.0.33版windows版MySql安装_配置远程连接_修改设置初始密码---MySql工作笔记0001

MySQL :: Download MySQL Community Server https://dev.mysql.com/downloads/mysql/ 首先去下载mysql 可以看到这里下载第一个就可以了,最新版的8.0.33 这里点击仅仅下载 just start my download 然后解压到一个文件夹,然后配置一下环境变量 然后新建一个my.ini文件 然后把…

【GNN】谱域图卷积

谱域图卷积 1. 谱域卷积的背景知识 1.1 谱域图卷积实现思路 f 1 ( t ) ⋆ f 2 ( t ) F − 1 [ F 1 ( w ) F 2 ( w ) ] f_1(t) \star f_2(t) F^{-1}[F_1(w)F_2(w) ] f1​(t)⋆f2​(t)F−1[F1​(w)F2​(w)] 1.2 如何定义图上的傅里叶变换 经典傅里叶变换: x ( …

速卖通正式推出全托管,卖家竞争进入新阶段

全托管来了,卖家就能安心做甩手掌柜吗? 正式推出全托管 显而易见,越来越多的平台正在转向全托管模式。 近日,速卖通在2023年度商家峰会上,正式推出了全托管服务模式。官方表示,托管是对速卖通平台商家服…

golang微服务项目通用流水线

golang微服务项目通用流水线 工作中随着业务越来越大,微服务的项目也越来越多,最开始的时候是一个服务一个流水线,然后还分了三个环境,也就是一个服务三个流水线,后面就越来越不利于管理维护了,因此&#…

持续集成——App自动化测试集成实战

这里写目录标题 一、app自动化测试持续集成的好处二、环境准备三、Jenkins节点挂载四、节点环境的配置1、JDK2、模拟器3、sdk环境4、Python3环境5、allure-commandline工具6、allure插件 五、本地运行待测代码(保证代码没有问题)六、库文件的导出七、Jenkins上运行代码配置1、指…

Visual Studio C# WinForm开发入门(4):概述

目录 一.Winform入门1.WinForm项目结构2.窗口设计与控件布局3.窗口事件4.时间显示器小练习 二.WinForm布局开发1.手动布局解决自适应问题2.WinForm布局属性3.WinForm布局器 三.WinForm常用控件1.界面展示2.实体类 Student(封装信息)3.逻辑事件代码Form.cs 四.图片框与项目资源1…

智慧班牌源码,使用springboot框架Java+vue2开发,二次开发方便快捷

智慧校园云平台电子班牌系统源码 智慧校园平台电子班牌系统源码在大数据平台下,对应用系统进行统一,以数据互联软硬结合的特点应用在校园,实现对校园、班级、教师、学生的管理。 智慧校园云平台电子班牌系统源码,使用springboot…

【视频课程】算法工程师需要的ChatGPT大模型算法理论与实践课程!非粗浅科普...

前言 自从2022年11月ChatGPT发布之后,迅速火遍全球。其对话的交互方式,能够回答问题,承认错误,拒绝不适当的请求,高质量的回答,极度贴近人的思维的交流方式,让大家直呼上瘾,更是带火…

软件开发全套文档案例分享

写在前面 在日常项目开发过程中,会产生大量的过程文档,比如开发过程中的文档、管理过程中的文档、产品相关文档等等,那这些文档我们日常怎么去管理呢?怎么去做规划呢?如何做成通用标准呢?小编特地整理了一…

5款超实用电脑办公软件推荐

1.AIDA64 AIDA64是一款电脑软硬件检测工具,它不仅可以详细的显示出PC的每一个方面的信息,还提供了诸如协助超频,硬件侦错,压力测试和传感器监测等多种功能,以帮助我们对电脑整体性能进行全面评估。 2.傲梅分区助手 …

推荐几个可以免费使用的ChatGPT工具

在ChatGPT相关API推出之后,各种工具如雨后春笋一般层出不穷,这篇文章就列举一些日常使用到的工具。 工具列表 OpenAI 在线读取任意网页内容包括视频(YouTube),并根据这些内容回答你提出的相关问题或总结相关内容支持…

数据划分方法简述:数据离散化和均值标准差分级法(含python代码)

文章目录 1 问题缘起2. 数据离散化等距离散等频离散聚类离散其他 3. 均值标准差分级 1 问题缘起 在数学建模中,我经常遇到这样一个问题: 在某一步中,需要把数据分成好几个类别或者是按照数据大小分级划分。 放到一维数据中形象一点解释就是…

项目管理-团队管理

冲突和竞争 冲突:是指两个或两个以上的社会单元在目标上互不相容或互相排斥,从而产生心理上的或行为上的矛盾。冲突并不一定是有害的, “一团和气”的集体不一定是一个高效率的集体。对于有害的冲突要设法加以解决或减少;对有益的…

Photoshop如何使用基础功能?

文章目录 0.引言1.菜单栏2.工具箱 0.引言 笔者从开始科研时就接触过Photoshop(PS),这么多年一直用着感觉有些陌生,在每次使用PS时总感觉有些抵触,这状态说明还未入门。为了入门PS,笔者从头熟悉PS的菜单和工…

直播软件app开发:如何保证音视频质量?

随着社交媒体的发展,视频直播已成为越来越流行的社交方式。直播软件app开发也因此成为了一个热门话题。在开发直播软件app时,保证音视频质量是至关重要的。本文将介绍如何确保你的直播软件app在音视频质量方面表现出色。 确定音视频质量标准 首先&…