【PXE高效的批量网络装机】

news2024/10/6 4:08:53

目录

  • 一、PXE的概述
    • 1.1、PXE批量部署的优点
    • 1.2、搭建PXE满足的以下的前提条件
    • 1.3、搭建PXE远程安装
  • 二、搭建PXE远程安装服务器
    • 1、安装并启动 TFTP 服务
    • 2、安装并启用 DHCP 服务
    • 3、准备 Linux 内核、初始化镜像文件
    • 4、准备PXE 引导程序
    • 5、安装FTP服务,准备CentOS 7 安装源
    • 6、配置启动菜单文件
    • 7、关闭防火墙,验证 PXE 网络安装
    • 8、测试
  • 三、实现Kickstart无人值守安装
    • 1、模拟自动安装


一、PXE的概述

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

1.1、PXE批量部署的优点

·规模化: 同时装配多台服务器
·自动化:安装系统、配置各种服务。
·远程实现: 不需要光盘、U盘等安装介质

在这里插入图片描述

1.2、搭建PXE满足的以下的前提条件

若要搭建 PXE 网络体系,必须满足以下几个前提条件:
客户端:
1.客户机的网卡要支持Ex协议(集成BOOTROM心片),且主板支持网络引导。一般大多数服务器主机都支持,只需在BIOS设置中允许从 network或 LAN 启动即可。
服务端:
2.网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置.
3.服务器要通过 TETP服务(简单文件传输协议)来提供系统内核和引导镜像文件的下载

1.3、搭建PXE远程安装

PXE远程安装服务器集成了 Centos 7 安装源、TETP 服务、DHCP 服务、FTP 服务,能够向客户机裸机发送 PXE引导程序、Linux内核、启动菜单等数据,以及提供安装文件。

TFTP(简单文件传输协议》,是一个基于UDP机议实现的用于在客户机和服条器之间进行简单文件传婚的协议,话合于小文件传验的应里场合。
TFTP服务默认由xinetd服务进行管理,使用UDP 端口69
xinetd是新一代的网络守护进程服务程序,又叫超级服务器,常用来管理多种轻量级internet服务。

守护进程也称精灵进程(Daemon),是运行在后台的一种特殊进程。守护进程独立于控制终端,它们常常跟随系统启动时启动,在系统关闭时才结束。
守护进程周期性的执行某些任务或者等待处理某些事件,Linux上的大多数服务器都是用守护进程实现的。

在系统启动中默认的守护进程的父进程ID全都是init,守护进程特征就是在程序运行名后加了一个d,但不是所有的尾字母是d的进程都是守护讲程

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

1、安装并启动 TFTP 服务

1、临时关闭防火墙

开机后设置关闭防火墙和临时关闭selinux防火墙
systemctl stop firewalld
setenforce 0

2、开机自动关闭防火墙设置

systemctl disable firewalld   实现开机自动关闭防火墙
vim /etc/sysconfig/selinux    关闭selinux防火墙

在这里插入图片描述

mount /dev/sr0 /mnt   光盘进行挂载

yum install -y xinetd tftp-server  安装这两个软件
一个xinetd  一个 tftp-server

cd /etc/xinetd.d/   
ls         查看xinetd里面看看有没有个tftp目录
vim tftp   进入tftp配置文件

在这里插入图片描述

systemctl enable --now xinetd tftp 
启动并且实现开机自启

在这里插入图片描述

2、安装并启用 DHCP 服务

安装DHCP服务

yum install -y dhcp   安装DHCP服务

cd /etc/dhcp  进入dhcp下载目录里
ls    查看文件,看到dhcpd.conf配置文件

vim dhcpd.conf  修改配置文件

在这里插入图片描述

cd /usr/share/doc/dhcp-4.2.5/   找到相同类型的文件

cp dhcpd.conf.example /etc/dhcp/dhcpd.conf   覆盖配置文件

在这里插入图片描述
2、修改DHCP服务的配置文件

vim dhcpd.conf

在这里插入图片描述

在这里插入图片描述

systemctl enable --now dhcpd    实现开机自动启动dhcpd服务

netstat -lntup | grep 67    
查看67号端口有没有打开,显示67号端口就是打开了

在这里插入图片描述

3、准备 Linux 内核、初始化镜像文件

cd /mnt    进入mnt目录
ls   查看到一个images目录
cd images/   进入images目录,看见一个pxeboot目录

ls  在pxeboot目录里有

vmlinuz  系统的内核文件

initrd.img  镜像引导文件

在这里插入图片描述

cp vmlinuz initrd.img /var/lib/tftpboot/
复制内核文件和镜像引导文件

在这里插入图片描述

4、准备PXE 引导程序

yum install -y syslinux   PXE引导程由软件包syslinux提供文件

rpm -ql syslinux 使用此命令查看文件

找到 PXE引导程序文件
/usr/share/syslinux/pxelinux.0

cd /usr/share/syslinux/  进入PXE引导程序文件

cp pxelinux.0 /var/lib/tftpboot/   
将pxelinux.0 复制到 var/lib/tftpboot/ 根目录里

使用 ls !$ 查看到有三个文件:
initrd.img  镜像引导文件

pxelinux.0   pxe程序引导文件

vmlinuz   内核文件

在这里插入图片描述

5、安装FTP服务,准备CentOS 7 安装源

yum install -y vsftpd  安装ftp服务

mkdir centos7  在ftp目录里创建一个centos7目录

mount /dev/sr0 /var/ftp/centos7/  
挂载centos7目录,使centos7目录里有光盘镜像文件

在这里插入图片描述

systemctl enable --now vsftpd  
让ftp直接启动,ftp直接启动开起了匿名服务,所以直接下载

在这里插入图片描述

ls /var/lib/tftpboot/ 
查看到ftp里安装了4个服务和设置了3个配置文件

在这里插入图片描述

6、配置启动菜单文件

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

cd /var/lib/tftpboot/   进入TFTP根目录

mkdir pxelinux.cfg/   创建一个子目录

cd pxelinux.cfg/     进入这个子目录

vim default         在子目录里设置一个文件名为default的文件
设置配置文件

在这里插入图片描述
在这里插入图片描述

进入TFTP根目录里使用
ls -R 查看是不是有以下配置文件

在这里插入图片描述

7、关闭防火墙,验证 PXE 网络安装

systemctl stop firewalld.service 
setenforce 0

8、测试

1、使用 VMware创建的虚拟机进行测试,虚拟机内存至少需要 2GB,否则在启动安装时可能会报错。
在这里插入图片描述

2、开启虚拟机,在提示字符串“boot:”后直接按Enter键(或执行“auto”命令),将会自动通过网络下载安装文件,并进入默认的图形安装入口;

3、若执行“linux text”命令,则进入文本安装入口;若执行 “linux rescue”命令,则进入救援模式。
在这里插入图片描述
4、设置完成后就可以进行手动安装

在这里插入图片描述

三、实现Kickstart无人值守安装

mount /dev/sr0 /var/ftp/centos7/  挂载目录
yum install -y system-config-kickstart
安装系统工具

在这里插入图片描述

使用Kickstart配置自动安装
在这里插入图片描述
设置安装的FTP的服务地址和创建的子目录
在这里插入图片描述
设置安装的引导过程
在这里插入图片描述
设置磁盘分区
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
配置网络设置
在这里插入图片描述设置禁用防火墙在这里插入图片描述
设置yum源仓库安装的脚本文件
在这里插入图片描述
保存设置文件的位置和改名
在这里插入图片描述
进入系统家目录,可以看见 anaconda-ks.cfg ,ks.cfg

vim ks.cfg
查看到刚刚设置的配置文件

在这里插入图片描述

vim anaconda-ks.cfg   当前系统的应答文件

在这里插入图片描述

软件包的禁止怎么解除
在这里插入图片描述
解除方法:
将anaconda-ks.cfg 里面的应答文件复制到刚刚创建的 ks.cfg 文件的行尾

在这里插入图片描述

复制到ks.cfg行尾

在这里插入图片描述

生产环境中实现最小化安装,在设置文件的行尾输入以下命令,进行最小化安装

%packages
@^minimal
%end

设置图形环境的配置

在这里插入图片描述

1、模拟自动安装

设置用户自己选择和不用用户选择
在这里插入图片描述
设置为1时手动确定安装
在这里插入图片描述
设置为0后直接安装
在这里插入图片描述

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

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

相关文章

SpringMVC使用域对象共享数据

1、SpringMVC中的域对象 此处只有request、session、servletContext被使用,而page是jsp页面的域,不使用jsp。 request:一次请求的范围内session:一次会话的范围内servletContext:整个web的应用范围内 2、向request域…

MySQL高级第十七篇:数据库主从复制原理及保证数据一致性

MySQL高级第十七篇:数据库主从复制原理及保证数据一致性 一、概述1. 提升数据库的并发能力2. 主从复制的作用? 二、主从复制原理三、搭建一主一从环境四、如何解决数据一致性问题?1. 方案一、异步复制2. 方案二、半同步复制3. 方案三、组复制…

3.黑马Springboot原理篇自己修改笔记

原理篇 1.自动配置的工作流程 1.1 bean的加载方式 方式一&#xff1a;配置文件<bean/>标签 缺点&#xff1a;配置bean太繁琐 方式二&#xff1a;配置文件扫描注解定义bean⭐️ 获取bean方式 ①通过配置文件&#xff0c;扫描指定包&#xff0c;加载bean ②通过注解声…

C++ STL之string容器的模拟实现

目录 一、经典的string类问题 1.出现的问题 2.浅拷贝 3.深拷贝 二、string类的模拟实现 1.传统版的string类 2.现代版的string类&#xff08;采用移动语义&#xff09; 3.相关习题* 习题一 习题二 4.写时拷贝 5.完整版string类的模拟实现[注意重定义] MyString.h…

磁珠的工作原理

磁珠是一个耗能元器件&#xff0c;他能把频率相对较高的信号以热量的形式耗散掉&#xff0c;保留频率相对较低的信号。 主要有这种插件的磁珠&#xff0c;还有这种贴片的磁珠。 下面我们来看下磁珠具体工作原理。 磁珠的构造我们可以简单的看成一个导线穿过环形铁氧体的磁性材…

[渗透教程]-015-网络与系统渗透

文章目录 1.0基本概念2.0 网络与系统渗透基本原理2.1 渗透测试2.2 入侵和预防2.3 案例一:从信息收集到入侵提权2.3.1 从域名到ip2.3.2 从IP获取旁站2.3.3 收集系统与⽹络配置详细信息2.3.4 踩点2.3.5发现漏洞2.3.6漏洞利用2.3.7维持系统控制权2.3.8清理访问痕迹2.4 案例二:Goo…

TryHackMe-Jeff(boot2root | Hard?)

Jeff 你能破解杰夫的网络服务器吗&#xff1f; 如果你发现自己在暴力破解SSH&#xff0c;你就做错了。 端口扫描 循例nmap 进80&#xff0c;是一个空页面&#xff0c;查看源代码 将jeff.thm加入hosts 上gobuster /admin是空页面&#xff0c;/backups也没东西&#xff0c;/up…

Centos安全加固策略

目录 密码安全策略 设置密码的有效期和最小长度 设置用户密码的复杂度 登录安全策略 设置用户远程登录的安全策略 安全的远程管理方式 访问控制 限制root用户登录 修改ssh 22端口 设置登录超时时间 限制IP访问 安全审计 审核策略开启 日志属性设置 查看系统登录…

基础巩固、探寻Java装箱和拆箱的奥妙!

前言 今天在逛某知名论坛的时候&#xff0c;看到一篇"请不要使用包装类型&#xff0c;避免造成性能损失"的文章。一下子就吸引了我的注意。大意就是&#xff0c;能用基本数据类型就尽量用基本数据类型&#xff0c;因为包装类型自动拆箱、装箱会带来性能损失尤其是循环…

函数式编程#3纯函数的概念

纯函数的概念 文章目录 纯函数的概念纯函数的两种形式&#xff1a;调用目标本身,不会改变函数内部,不受函数外部影响 函数的副作用如何理解"相同的输入得到相同的输出"不是纯函数的映射关系是纯函数的映射关系 纯函数的两种形式&#xff1a; 调用目标本身,不会改变 …

gcc编译 与交叉编译(x86 to arm) (一)单个文件编译

1.1、gcc编译单个c程序&#xff08;hello.c) gcc hello.c -o hello (hello是生成的可执行程序的名字&#xff09;1.2、交叉编译hello.c 源平台&#xff1a; UOS_X86_64 目标平台&#xff1a;UOS_arm 方法&#xff1a;使用现成的交叉编译工具链 参考资料&#xff1a;交叉编译…

【UE】water插件的简单使用

UE Editor版本&#xff1a;4.26 目录 一、岛屿外观修改 二、波浪参数设置 三、水体海洋的颜色设置 四、 水体河流 五、创建可浮在水体上的actor 一、岛屿外观修改 1. 保证“Landmass”和“Water”插件已启用 启用后&#xff0c;搜索water可以看到如下组件 2. 激活地形编…

LeetCode:6390. 滑动子数组的美丽值

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; &#x1f33b;算法&#xff0c;不如说它是一种思考方式&#x1f340; 算法专栏&#xff1a; &#x1f449;&#x1f3fb;123 一、&#x1f331;6390. 滑动子数组的美丽值 题目描述&#xff1a;给你一个长度为 n 的整…

vulnhub DC:4渗透笔记

靶场下载地址:https://vulnhub.com/entry/dc416-2016,168/ 信息收集 使用nmap确定靶场ip地址 扫描ip确定开放端口 开放22 80端口&#xff0c;访问一下网页端(这边断了一次靶机ip改为192.168.100.138) 漏洞利用 登录框尝试爆破 发现用户名密码admin happy 登录进入后发现这里…

【自然语言处理】【大模型】LaMDA:用于对话应用程序的语言模型

LaMDA&#xff1a;用于对话应用程序的语言模型 《LaMDA: Language Models for Dialog Applications》 论文地址&#xff1a;https://arxiv.org/abs/2201.08239 相关博客 【自然语言处理】【大模型】LaMDA&#xff1a;用于对话应用程序的语言模型 【自然语言处理】【大模型】Dee…

如何衡量 SLO 的有效性?

衡量 SLO 及错误预算策略是否有效&#xff0c;其实就是看实际运行后&#xff0c;是否真的能达到我们的期望。我们可以从下面三个关键维度来看。 SLO 达成情况。我们用达成&#xff08;Met&#xff09;&#xff0c;或未达成&#xff08;Missed&#xff09;来表示。“人肉”投入…

阿里EGES

EGES&#xff1a;Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba 阿里的EGES是Graph Embedding的一个经典应用&#xff0c;在内容冷启和物料召回上面有较多的落地潜力。主要思想是根据用户交互的物料作为节点构建物料图&#xff0c;在传统的Dee…

(二)AIGC—Stable Diffusion(2)

越往后&#xff0c;加的噪声越多&#xff0c;逐渐递增 正常的话&#xff0c;类似RNN&#xff0c;前向传递&#xff0c;不利于模型训练。 如果直接从x0到xt最好&#xff0c;DPPM这篇论文就实现了这一目标 beta这一参数在扩散过程是已知的&#xff0c;前期设计好&#xff0c;从0…

从0搭建Vue3组件库(六):前端流程化控制工具gulp的使用

随着前端诸如webpack&#xff0c;rollup&#xff0c;vite的发展&#xff0c;gulp感觉似乎好像被取代了。其实并没有&#xff0c;只不过它从台前退居到了幕后。我们仍然可以在很多项目中看到它的身影&#xff0c;比如elementplus、vant等。现在gulp更多的是做流程化的控制。 比如…

【算法题解】28.子集的递归解法

这是一道 中等难度 的题 题目来自&#xff1a; https://leetcode.cn/problems/subsets/ 题目 给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的子集&#xff08;幂集&#xff09;。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 …