当前位置: 首页 > news >正文

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

一、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 系统,而无须手工干预。过程全自动化,不再演示。

相关文章:

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

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

4.23日报

MySQL 索引是怎么实现的? 索引是满足某种特定查找算法的数据结构,而这些数据结构会以某种方式指向数据,从而实现高效查找数据。 具体来说 MySQL 中的索引,不同的数据引擎实现有所不同,但目前主流的数据库引擎的索引都…...

【数据治理】数据治理方面的证书有哪些?

目前数据治理领域最专业的职业认证有: 中文版: ①DAMA国际CDGA数据治理工程师、DAMA国际CDGP数据治理专家 (先获得CDGA认证才能申请CDGP认证考试) ②DGSP数据治理与管理认证 英文版: ③CDMP数据管理专业人士 一、…...

Let’s Make C++ Great Again——set与vector

文章目录 set常用的set方法:set实现去重的例子:自定义比较函数的例子,按照字符串长度从小到大排序:使用set容器求两个集合的交集的例子: vector创建vector对象插入和删除元素获取vector的大小和容量检查vector是否为空…...

Nginx+Tomcat负载均衡、动静分离

一.Nginx负载均衡实现原理 Nginx实现负载均衡是通过反向代理实现 1、 反向代理原理 2、反向代理的概念 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服…...

SpringCloud入门实战(七)-Hystrix服务熔断

📝 学技术、更要掌握学习的方法,一起学习,让进步发生 👩🏻 作者:一只IT攻城狮 。 💐学习建议:1、养成习惯,学习java的任何一个技术,都可以先去官网先看看&…...

百度平地起“雷”,突然爆出的QPS数据意味着什么?

鲁迅先生1923年在北师大发表了著名的演讲《娜拉走后怎样》,其中的提问与思考方式振聋发聩,直到今天也依旧有效。面对很多产业现象、技术趋势,我们也不妨多问几个“之后怎样”。 比如说,自ChatGPT爆火之后,中国各个互联…...

电子模块|外控集成 LED 光源 WS2812模块---硬件介绍和stm32驱动

电子模块|外控集成 LED 光源 WS2812模块 模块简介模块特点机械尺寸单线归零码通讯方式24bit 数据结构 stm32 驱动 模块简介 WS2812是一个集控制电路与发光电路于一体的智能外控LED光源。其外型与一个5050LED灯珠相同,每个元件即为一个像素点。像素点内部包含了智能…...

Jenkins+Python自动化测试持续集成详细教程(全网独家)

目录 一、前言 二、环境准备 三、创建Jenkins Job 四、编写Python自动化测试脚本 五、测试报告生成与展示 六、持续集成流程优化 七、实战演练 八、常见问题及解决方案 九、结论 一、前言 Jenkins是目前最为流行的CI/CD工具之一,它可以支持多种语言和技术…...

运维监控工具PIGOSS BSM扩展指标介绍

PIGOSS BSM运维监控工具,除系统自带指标外,还支持添加SNMP扩展指标、脚本扩展指标、JMX扩展指标、自定义JDBC指标等,今天本文将介绍如何添加SNMP扩展指标和脚本扩展指标。 添加SNMP扩展指标 前提:需要知道指标的oid 例子&#xff…...

一些前端问题2

1.业务场景中需要嵌入公司其他行业线的页面,这种不使用 iframe 该怎么办? 答:理论上应该让他们给你做个组件出来,但是如果实在没别的办法,就使用 iframe 吧。 2.jquery ajax 同步请求的原理是? 目前用 axios 库&…...

Moviepy模块之视频添加图片水印

文章目录 前言视频添加图片水印1.引入库2.加载视频文件3.加载水印图片4.缩放水印图片大小5.设置水印的位置5.1 相对于视频的左上角5.2 相对于视频的左下角5.3 相对于视频的右上角5.4 相对于视频的右下角5.5 相对于视频的左中位置5.6 相对于视频的正中位置5.7 相对于视频的右中位…...

day35—编程题

文章目录 1.第一题1.1题目1.2思路1.3解题 2.第二题2.1题目2.2思路2.3解题 1.第一题 1.1题目 描述: 今年公司年会的奖品特别给力,但获奖的规矩却很奇葩: 首先,所有人员都将一张写有自己名字的字条放入抽奖箱中;待所有…...

Linux安装Nginx

前言 提示:这里可以添加本文要记录的大概内容: Linux安装Nginx的详细步骤。 一、安装Nginx的相关依赖 1、安装gcc,PCRE pcre-devel,zlib,OpenSSL, 提示:安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境。 PCRE(…...

Qt 项目Mingw编译器转换为VS编译器时的错误及解决办法

错误 在mingw生成的项目,转换为VS编译器时通常会报些以下错误(C4819警告,C2001错误,C2143错误) 原因及解决方式 这一般是由于字符编码引起的,在源代码文件中包含了中文字符导致的。Qt Creator 生成的代码文…...

大学生用什么蓝牙耳机好?2023好用的蓝牙耳机推荐

近几年,蓝牙耳机市场不断扩大,逐渐取代有线耳机成为最受人欢迎的数码产品之一。作为蓝牙耳机主要受众群的大学生,用什么蓝牙耳机比较好呢?下面,我来给大家推荐几款便宜好用的蓝牙耳机,一起来看看吧。 一、…...

【好题】好题分享

1001-四舍五入_牛客竞赛语法入门班数组模拟、枚举、贪心习题 (nowcoder.com) 题目描述 四舍五入是个好东西。比如你只考了45分,四舍五入后你是50分再四舍五入你就是满分啦!qdgg刚考完拓扑。成绩十分不理想。但老师觉得他每天都很认真的听课很不容易。于是…...

three.js 怎么在自动缩放的时候添加动画效果

要在自动缩放的时候添加动画效果可以使用three.js中的Tween.js库。Tween.js提供了一种简单的方式来创建和管理动画,它可以让开发者通过简单的API来控制对象的属性变化,从而实现动画效果。 以下是一个使用Tween.js实现模型缩放动画的示例: 加…...

考虑梯水电站群的水火电节能调度(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

CF914G Sum the Fibonacci

CF914G Sum the Fibonacci 洛谷Sum the Fibonacci 题目大意 给你一个长度为 n n n的数组 s s s,定义五元组 ( a , b , c , d , e ) (a,b,c,d,e) (a,b,c,d,e)是合法的当且仅当: 1 ≤ a , b , c , d , e ≤ n 1\leq a,b,c,d,e\leq n 1≤a,b,c,d,e≤n ( …...

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络&#xf…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...