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

Linux网络之PXE高效批量装机、Kickstart全自动化安装

一. PXE网络装机简介和相关知识

1. 常见的三种系统安装方式和相关文件

① 三种系统安装方式

u启动安装:在U盘中下载相关的安装系统及镜像文件,u盘插机安装

光驱安装:将带有所需系统的光盘放进电脑服务器中,按照官方引导装机

网络下载安装:在网上下载相关镜像系统,进行安装

② Linux安装光盘的相关文件

  • boot.cat: 相当于grub的第一阶段

  • isolinux.bin:光盘引导程序

  • isolinux.cfg:启动菜单的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件

  • vesamenu.c32:是光盘启动后的启动菜单图形界面

  • memtest:内存检测程序

  • splash.png:光盘启动菜单界面的背景图

  • vmlinuz:是内核映像

  • initrd.img:ramfs文件(精简版的linux系统,文件系统驱动等)

2. PXE简介

2.1 介绍

PXE 的全称是 preboot execute environment。它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。

若想进行PXE批量装机,首先要搭建PXE远程安装服务器。而PXE远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能够向客户机裸机发送 PXE引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。 

2.2 优点

规模化:同时装配多台服务器,无需每一台单独安装操作系统;

自动化:实现服务器的自动安装及自动配置各种服务;

远程实现:不需要光盘、U盘等安装介质,方便快捷的同时又可以保障服务器安全。

3.进行PXE装机的前提条件

客户机

  • 客户机的网卡要支持PXE协议(集成BOOTROM芯片)

  • 主板支持网络引导。有一些需在BIOS设置中允许从 Network 或 LAN 启动即可

服务端

  • DHCP 服务器 :为客户机自动分配地址、指定引导文件位置。

  • 服务器要开启 TFTP服务(简单文件传输协议):用来提供系统内核和引导镜像文件的下载。

  • 服务器中使用FTP服务(或http/nfs)font> :提供yum安装源

  • 安装软件包syslinux :提供PXE引导程序

4.PXE装机过程描述

4.1 过程

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

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

③ 网卡使用tftp客户端吧引导程序加载到内存中来

④ bios执行引导程序

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

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

⑦ 系统安装过程

带着四大文件再来走一遍

4.2 需要安装软件详解

① TFTP服务

TFTP(简单文件传输协议):内核和引导文件

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

② vsftpd

安装系统镜像文件获取方式

③ syslinux

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

⑤ dhcp 

DHCP是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码,同时也能配合DNS解析使用,让指定范围内的客户机能够自动获取解析域名的后缀。

4.3 四大文件

查看是哪四大文件:

① pxelinux.0:引导程序。(来自syslinux程序)
② pxelinux.cfg :存放default:引导程序的配置文件。(需要手写,可参考光盘 isolinux 目录下的 isolinux.cfg 文件)
③ vmlinuz:内核文件。(从光盘中获取,位于 isolinux 目录下)
④ initrd.img: 系统启动镜像文件。(从光盘中获取,位于 isolinux 目录下)
 

5.搭建安装具体过程

① 安装软件包

② 配置 dhcp 服务器

配置文件内容:

③ 修改 tftp 服务配置文件

④ 挂载光盘,安放三大文件

⑤ 创建子目录,在子目录下面编写引导程序

⑥ 配置vsftpd服务,关闭防护和防火墙,开启服务

在/var/ftp/下新建一个目录,并将光盘挂载到该目录下,供客户端下载

到这里已经实现了半自动化安装

再安装一个kickstart程序,实现全自动化安装

⑦ 安装 kickstart

⑧ 做 Kickstart 的一些基本操作

基本配置:

安装方法:

引导装载程序选项:

配置分区信息:

选择类型和分区大小:

防火墙配置:

显示配置:

安装后可以添加脚本:

保存:

因为是ftp服务,所以只能放在 /var/ftp 下面

⑨ 写入配置中

⑩ 测试

新建一台虚拟机

ここまで仮想マシンが構築できない場合は、南京で直接ビルを探して直接降りることをお勧めします

虚拟机内存需要大于 2GB,不然装不了

进入急救模式,选择Network这行

点击进去之后,就不需要再进行操作

玩一玩

等到出现下面页面,输入root  密码123 

再切换用户lisi,那就ok了

二. kickstart 

kickstart 实现了真正的全自动化。搭配PXE使用,实现一键批量装机。

#  安装 kickstart 服务程序
yum install  system-config-kickstart  -y#  查看kickstart 形成的脚本
cat /var/ftp/ks.cfg   

kickstart 文件主要包括三个部分:命令段,程序段,脚本段

命令段:

keyboard设定键盘类型
lang语言类型
zerombr清除mbr
clearpart清除分区
part创建分区
rootpw指明root的密码
timezone时区
text文本安装界面
network指定网络设置
firewall设置防火墙设置
selinux设置selinux设置
reboot安装完自动重启
user安装完成后为系统创建新用户
url

指明安装源

程序包段:指明要安装的程序包组或程序包,不安装的程序包等

脚本段:

%pre: 安装前脚本

%post: 安装后脚本

三.Cobbler 

1.cobbler简介

① Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等。
② Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。
③ Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web界面比较易于管理。
④ Cobbler内置了一个轻量级配置管理系统,但它也支持和其它配置管理系统集成,如Puppet,暂时不支持SaltStack。


2.cobbler集成的服务

PXE服务支持。
DHCP服务管理。
DNS服务管理(可选bind,dnsmasq)
电源管理
Kickstart服务支持
YUM仓库管理
TFTP(PXE启动时需要)
Apache(提供kickstart的安装源,并提供定制化的kickstart配置)

3.工作原理

  • client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器(cobbler server)发送其分配好的一个IP

  • DHCP服务器(cobbler server)收到请求后发送responese,包括其ip地址

  • client裸机拿到ip后再向cobbler server发送请求OS引导文件的请求

  • cobbler server告诉裸机OS引导文件的名字和TFTP server的ip和port

  • client裸机通过上面告知的TFTP server地址通信,下载引导文件

  • client裸机执行执行该引导文件,确定加载信息,选择要安装的os,期间会再向cobbler server请求kickstart文件和os image

  • cobbler server发送请求的kickstart和os iamge

  • client裸机加载kickstart文件

  • client裸机接收os image,安装该os image

4. 实际操作

① 安装软件

② 开启服务

③ 核对当前设置是否有问题

④ 生成新的密码

⑤ 修改下面的几个配置

#根据以上提示,只需要做1,2,8这三项即可,修改下面四行
[root@centos7 ~]#vim /etc/cobbler/settings 
default_password_crypted: "$1$1spuisnh$j34LNmyTQWs3l6xKxCZY60"
next_server:< tftp服务器的 IP 地址>   192.168.44.20
server:<cobbler服务器的 IP 地址>
manage_dhcp:1  #设置为1,表示通过cobbler生成dhcpd.conf配置文件
pxe_just_once: 1 #设置为1,防止重复安装系统
[root@centos7 ~]#systemctl restart cobblerd

⑥ 修改dhcp里面配置,实现dhcp服务

⑦ 开启服务,同步生成配置文件

⑧ 查看 帮你生成好了

⑨ 先挂载    再安装 --name  表示安装源名称    --path 指定镜像路径     --arch  指定安装源平台

镜像拷到了这个目录下,查看大小

一键安装

BIOS   2T以下   Win10

UEFI 可以对2T+  Win10以上

有点小问题,但是问题不大!!!

相关文章:

Linux网络之PXE高效批量装机、Kickstart全自动化安装

一. PXE网络装机简介和相关知识 1. 常见的三种系统安装方式和相关文件 ① 三种系统安装方式 u启动安装&#xff1a;在U盘中下载相关的安装系统及镜像文件&#xff0c;u盘插机安装 光驱安装&#xff1a;将带有所需系统的光盘放进电脑服务器中&#xff0c;按照官方引导装机 …...

react umi/max 页签(react-activation)

思路&#xff1a;通过react-activation实现页面缓存&#xff0c;通过umi-plugin-keep-alive将react-activation注入umi框架&#xff0c;封装页签组件最后通过路由的wrappers属性引入页面。 浏览本博客之前先看一下我的博客实现的功能是否满足需求&#xff0c;实现功能&#xf…...

计算机网络编程

一、计算机网络&#xff08;概述、简介&#xff09; 说起网络&#xff0c;相信大家都不陌生&#xff0c;把分散在不同地点的计算机设备&#xff0c;通过传输介质、通信设施和网络通信协议&#xff0c;实现资源共享和信息传输的系统&#xff0c;我们称之为&#xff1a;计算机网…...

【计算机网络实训】期末考题-路由重分发+三层交换机VLAN间路由

路由重分发三层交换机VLAN间路由 实验目的实验内容及步骤仿真配置环境搭建要求&#xff1a;实验步骤配置Switch0配置Switch1配置交换机Multilayer Switch 0路由器Router0上的配置路由器Router1的配置 测试PC0 自动获取地址成功&#xff0c;PC0 可 ping 通 switch0&#xff0c;网…...

git 常规操作及设置

git 常规操作及设置 Git是一个分布式版本控制系统&#xff0c;可以用来跟踪文件的修改历史并与其他人进行协作开发。下面是一些常见的Git操作及设置&#xff1a; 初始化仓库&#xff1a;使用命令git init在当前目录创建一个新的Git仓库。 克隆仓库&#xff1a;使用命令git clo…...

element中表格组件的row-class-name和class-name属性的使用以及无效处理

1.这两个属性的使用&#xff0c;row-class-name用在el-table标签上&#xff0c;class-name用在el-table-column标签上。两个属性即可绑定类名也可绑定函数 <!-- 这里是绑定函数&#xff0c;也可以绑定类名 --> <el-table :data"tableData" selection-chang…...

【AI理论知识】EM算法

基本定义 期望最大化算法&#xff08;Expectation-Maximization&#xff0c;EM算法&#xff09;是一种用于估计包含潜在变量的概率模型参数的迭代优化算法。EM算法的主要目标是在存在未观测数据或缺失数据的情况下&#xff0c;通过迭代地进行期望步骤&#xff08;E步&#xff…...

03 OSPF

参考文章 1 初步认识OSPF的大致内容(第三课)-CSDN博客 2...

node.js(express.js)+mysql实现注册功能

文章目录 实现步骤一、获取客户端提交到服务器的用户信息&#xff0c;对表单中的数据&#xff0c;进行合法性的效验 代码如下:二、检测用户名是否被占用三、对密码进行加密四、插入新用户&#xff08;完整代码&#xff09;总结 实现步骤 一、获取客户端提交到服务器的用户信息…...

AI绘画Stable Diffusion进阶使用

本文讲解&#xff0c;模型底模&#xff0c;VAE美化模型&#xff0c;Lora模型&#xff0c;hypernetwork。 文本Stable Diffusion 简称sd 欢迎关注 使用模型 C站&#xff1a;https://civitai.com/ huggingface&#xff1a;https://huggingface.co/models?pipeline_tagtext-to-…...

C 练习实例33 - 质数(素数)判断

题目&#xff1a;判断一个数字是否为质数。 程序分析&#xff1a;质数&#xff08;prime number&#xff09;又称素数&#xff0c;有无限个。一个大于1的自然数&#xff0c;除了1和它本身外&#xff0c;不能被其他自然数整除。 这题做过很多遍了&#xff0c;懂得都懂。 代码…...

docker环境下mongo副本集的部署及异常修复

最近更换了办公地点。部署在本地docker环境里的mongo数据库不能使用了。原因是本地的ip地址变更。以前的mongo副本集的配置需要更新。处理完后&#xff0c;索性重新记录一下mongo副本集在docker中的部署流程。 mongo的事务及副本集 我们先了解一下什么是事务&#xff0c;事务…...

【Java】Maven的安装与配置

初识Maven Maven是专门用于管理和构建Java项目的工具&#xff0c;它的主要功能有&#xff1a; 提供了一套标准化的项目结构 提供了一套标准化的构建流程&#xff08;编译&#xff0c;测试&#xff0c;打包&#xff0c;发布……&#xff09; 提供了一套依赖管理机制 标准化的…...

向量和向量如何相乘?

向量与向量相乘主要有两种方式&#xff1a;点积&#xff08;内积&#xff09;和叉积&#xff08;外积&#xff09;。这两种运算的结果和应用是不同的。 点积&#xff08;内积&#xff09;&#xff1a; 点积是两个向量的对应元素相乘后再求和的结果&#xff0c;通常用于计算两个…...

计算机组成原理 指令流水线

文章目录 指令流水线指令流水线的概念流水线性能分析流水线的吞吐率流水线的加速比流水线的效率 影响流水线的因素结构相关 (资源冲突)数据相关 (数据冲突)控制相关 (控制冲突) 流水线分类超量流水线 指令流水线 #mermaid-svg-sWaRASMFAvh8sLJk {font-family:"trebuchet m…...

macOS - md5 | md5sum

文章目录 简单使用介绍文档Linux - md5summacOS - md5 大文件传输是否完整&#xff0c;你可以使用 md5 进行校验 linux 上使用 md5sum 命令&#xff0c;在macOS 上 md5 命令是和 md5sum 等效的 简单使用介绍 参考&#xff1a;https://blog.csdn.net/cnds123321/article/detail…...

Tomcat快速入门

1.Tomcat介绍 Apache Tomcat 是由 Apache Software Foundation&#xff08;ASF&#xff09;开发的一个开源 Java WEB 应用服务器&#xff0c;如apache处理静态HTML能力突出不同&#xff0c;tomcat处理动态HTML能力相当强大&#xff0c;因此一般项目都是部署apachetomcat&#…...

如何结合antd design pro 5 结合express 上传多个文件

在Ant Design Pro 5&#xff08;基于React&#xff09;的前端界面结合Express后端实现上传整个文件夹的文件&#xff0c;实际上是在前端进行多文件选择&#xff0c;并通过POST请求将文件列表发送到后端&#xff0c;然后由后端处理上传。由于浏览器API限制&#xff0c;直接上传整…...

Django随笔

关于Django的admin 1. 在url中把 from django.contrib import admin 重新解开 把path(admin/,admin.site.urls), 解开 2. 注册app&#xff0c;在配置文件中写 django.contrib.admin, 3.输入命令进行数据库迁移 Django国际化 配置文件中&#xff08;改成中文&#xff09; LA…...

线程和进程的区别(从JVM角度出发)

进程与线程的区别 线程具有许多传统进程所具有的特征&#xff0c;故又称为轻型进程(Light—Weight Process)或进程元&#xff1b;而把传统的进程称为重型进程(Heavy—Weight Process)&#xff0c;它相当于只有一个线程的任务。在引入了线程的操作系统中&#xff0c;通常一个进…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...