Linux网络服务之自动装机(PXE+KICKSTART)详解

自动装机

  • 一、启动操作系统的方式
    • 1.1 系统装机的三种引导方式
    • 1.2 系统安装过程
    • 1.3 三大文件
    • 1.4 如何实现自动装机?
  • 二、PXE
    • 2.1 PXE的简介和优点
    • 2.2 实现PXE的前提条件
    • 2.3 PXE实现过程
    • 2.5 要安装的服务
    • 2.6 实现PXE
      • 2.6.1 前置准备
      • 2.6.2 安装并配置DHCP
      • 2.6.3 安装并配置TFTP
      • 2.6.4 安装syslinux,找到第三个文件的位置
      • 2.6.5 安装vsfp
      • 2.6.6 将三大文件拷贝到/var/lib/tftpboot下
      • 2.6.7 PXE功能测试
  • 三、KICKSTART 无人值守安装
    • 3.1 kickstart 概述
    • 3.2 kickstart配置文件
    • 3.3 实现自动化装机(pxe+kickstart)
      • 3.3.1 安装kikcstart工具,在虚拟机中用软件修改配置
      • 3.3.2 查看kickstart文件,编辑default文件
      • 3.3.3 验证自动装机是否成功

一、启动操作系统的方式

1.1 系统装机的三种引导方式

  1. 硬盘
  2. 光驱
  3. 网络

1.2 系统安装过程

  1. 加载boot loader
  2. 加载启动安装菜单
  3. 加载内核和initrd系统(文件才能使用文件)
  4. 加载根系统()
  5. 运行anaconda的安装向导

1.3 三大文件

在网络引导过程中,这些文件通常用于加载操作系统。

pxelinux.0 是一个 PXE 引导加载程序,用于启动网络引导。

vmlinuz 是一个压缩的 Linux 内核文件,它包含了操作系统的核心功能和驱动程序。

initrd.img 是一个用于初始化 RAM 磁盘的初始 RAM 文件系统。它包含了操作系统启动时所需的基本文件和驱动程序。

1.4 如何实现自动装机?

Kickstart 和 PXE 结合使用可以实现自动化的网络安装过程。

二、PXE

2.1 PXE的简介和优点

简介

PXE(Preboot Execution Environment)是一种网络引导技术,允许计算机通过网络启动和安装操作系统。

PXE通过网卡引导启动。

优点

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

2.2 实现PXE的前提条件

  1. BIOS支持

  2. 网卡支持

  3. 需要在bios中开启开关,服务器一般没打开(bmc界面里打开)

  4. 有DHCP 服务器
    DHCP服务用于为客户机自动分配地址、指定引导文件位置

  5. 安装了TFTP服务
    TFTP服务(简单文件传输协议)用于提供系统内核和引导镜像的下载。

2.3 PXE实现过程

在这里插入图片描述

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

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

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

  4. bios执行引导程序

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

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

2.5 要安装的服务

DHCP

vim install -y dhcp 

TFTP

yun install -y tftp-service

VSFTPD

yum install -y tftp-server.x86_64

syslinux(小型的grub程序,为PXE提供引导)

yum install -y syslinux

2.6 实现PXE

2.6.1 前置准备

在这里插入图片描述

systemctl stop firewalld
setenforce 0  #关闭防火墙和selinux

2.6.2 安装并配置DHCP

yum install -y dhcp #安装

在这里插入图片描述

rpm -qc dhcp      #查看dhcp服务的配置文件

find / -name dhcp.conf.example #找到模板

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  dhcpd.conf #导入配置模板

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

vim dhcpd.conf  #编辑配置文件

#关键内容#
next-server 192.168.2.100;#指定TFTP服务器的地址
filename "pxelinux.0";

在这里插入图片描述

systemctl start dhcpd #启动服务

systemctl status dhcpd #查看服务状态

在这里插入图片描述

2.6.3 安装并配置TFTP

yum install -y tftp-server.x86_64  #安装

rpm -ql tftp-server #查看目录

在这里插入图片描述

vim  /etc/xineted.d  #编辑配置文件

在这里插入图片描述

systemctl start tftp #启动tftp服务

systemctl status tftp #查看服务状态

在这里插入图片描述

2.6.4 安装syslinux,找到第三个文件的位置

yum install -y syslinux #安装syslinux 

rpm -ql syslinux | grep pxelinux.0 #第三个文件的位置

2.6.5 安装vsfp

yum install -y vsftpd #安装服务
cd /var/ftp 
mkdir test #创建挂载点目录
mount /dev/sr0   /var/ftp/test  #挂载,提供路径
cd /var/lib/tftptroot 

mkdir pxelinux.cfg #创建 pxelinux.cfg目录

cd /pxelinux.cfg  
 
touch defaults #创建默认配置文件
#内容可参考 /mnt/isolinux/isolinux.cfg文件
vim default #编辑文件

在这里插入图片描述

systemctl start vsftpd #启动服务

2.6.6 将三大文件拷贝到/var/lib/tftpboot下

三大文件
vmlinuz,initrd.img,pxelinux.0

cd /var/ftp/test #切换到挂载点目录

cp initrd.img /var/lib/tftpboot/ #第一个文件
cp vmlinuz /var/lib/tftpboot/    #第二个文件

rpm -ql syslinux | grep pxelinux.0 #找到第三个文件的位置

cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot #拷贝第三个文件

在这里插入图片描述

cd /var/lib/tftpboot 

tree #查看是否拷贝成功

在这里插入图片描述

2.6.7 PXE功能测试

新建虚拟机

安装过程不再赘述,不要使用ISO映像文件
在这里插入图片描述

开启虚拟机,进入等待界面

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

开始安装虚拟机

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

三、KICKSTART 无人值守安装

3.1 kickstart 概述

Kickstart 文件是一个包含安装配置信息的文本文件。通过将Kickstart文件放置在网络上的可访问位置,并将PXE服务器进行相应的配置,可以实现使用Kickstart文件来配置和自动化执行操作系统安装过程

3.2 kickstart配置文件

vim ks.cfg 

在这里插入图片描述

1. `install`: 告诉安装程序执行新安装而不是升级操作。
2. `url`: 指定安装源的 URL,可以是一个 HTTP、FTP 或 NFS 的 URL。
3. `keyboard`: 设置键盘布局或键盘类型。
4. `timezone`: 指定时区,可以使用正常的时区名称,例如 "America/New_York"5. `rootpw`: 设置 root 用户的密码,可以使用明文密码或加密密码。
6. `network`: 配置网络相关设置,如网络设备、IP 地址、子网掩码、网关和 DNS 服务器。
7. `part`: 配置磁盘分区设置,指定文件系统类型、分区大小等。
8. `%packages`: 列出要安装的软件包,可以是软件包组(如 "@base""@core")或具体的软件包名称。
9. `%post`: 在安装完成后执行的脚本,可以用于自定义配置和安装其他软件。

3.3 实现自动化装机(pxe+kickstart)

3.3.1 安装kikcstart工具,在虚拟机中用软件修改配置

yum install -y  system-config-kickstart #安装图形化工具 

在这里插入图片描述
1.修改基本设置
在这里插入图片描述

2.修改基本设置
在这里插入图片描述
3.修改优点引导文件在这里插入图片描述
4.修改分区信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5.添加网络配置
在这里插入图片描述
6.添加安装后脚本
在这里插入图片描述
7. 保存文件
在这里插入图片描述
在这里插入图片描述

3.3.2 查看kickstart文件,编辑default文件

ls /var/ftp

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

vim defalut 

在这里插入图片描述

3.3.3 验证自动装机是否成功

新建虚拟机
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Vue3 第二节 Vue3的响应式

1.Vue3的响应式原理 2.ref函数和reactive函数的对比 3.setup注意点 一.Vue3的响应式原理 1.Vue2.x中的响应式原理 ① 实现原理 对象类型:通过Object.defineProperty() 对属性的读取,修改进行拦截(数据劫持)数组类型&#xf…

ES6 - 对象新增的一些常用方法

文章目录 1,Object.is()2,Object.asign()3,Object.getOwnPropertyDescriptors()4,Object.setPrototypeOf()和getPrototypeOf()5,Object.keys()、values() 和 entries()6,Object.fromEntries()7,…

【零基础??天速成 Java】Day2 - 初识面向对象

目录 前言 1. 可变参数的使用 2. 构造器 3. 包 1、包的创建 2、包的使用 3、包的命名规范 4、常用的包 5. 访问修饰符 6. 继承 7. super 关键字 8. 方法重写 Override 写在最后: 前言 我的 java 基础学习,跟的是韩顺平的 java 课程~ 本篇…

【腾讯云Cloud Studio实战训练营】React 快速构建点餐页面

前言: Cloud Studio是一个在线的云集成开发环境(IDE),可以让开发人员在浏览器中轻松地开发、测试、调试和部署应用程序。它提供了基于云的计算资源和工具,例如代码编辑器、编译器、调试器、版本控制系统和项目管理工具…

Spring Boot2.xx开启监控 Actuator

spring boot actuator介绍 Spring Boot包含许多其他功能,可帮助您在将应用程序推送到生产环境时监视和管理应用程序。 您可以选择使用HTTP端点或JMX来管理和监视应用程序。 审核,运行状况和指标收集也可以自动应用于您的应用程序。 总之Spring Boot Ac…

8月8日上课内容 研究nginx组件rewrite

location 匹配uri location 匹配的规则和优先级。(重点,面试会问,必须理解和掌握) nginx常用的变量,这个要求掌握 rewrite:重定向功能。有需要掌握,有需要理解的。 location匹配:…

用Vue实现页面访问拦截

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 页面访问拦截 1.创建axios实例 2.添加拦截器 3.全局前置守卫 可选的第三个参数 next 总结&#xff1a…

状态模式(C++)

定义 允许一个对象在其内部状态改变时改变它的行为。从而使对象看起来似乎修改了其行为。 应用场景 在软件构建过程中,某些对象的状态如果改变,其行为也会随之,而发生变化,比如文档处于只读状态,其支持的行为和读写…

使用 Python 和 Flask 构建简单的 Restful API 第 1 部分

一、说明 我将把这个系列分成 3 或 4 篇文章。在本系列的最后,您将了解使用flask构建 restful API 是多么容易。在本文中,我们将设置环境并创建将显示“Hello World”的终结点。 我假设你的电脑上安装了python 2.7和pip。我已经在python 2.7上测试了本文…

无涯教程-Perl - fcntl函数

描述 该函数是系统fcntl()函数的Perl版本。使用FILEHANDLE上的SCALAR执行FUNCTION指定的功能。 SCALAR包含函数要使用的值,或者是任何返回信息的位置。 语法 以下是此函数的简单语法- fcntl FILEHANDLE, FUNCTION, SCALAR返回值 该函数返回0,但如果fcntl()的返回值为0,则返…

【Go语言】Golang保姆级入门教程 Go初学者chapter2

【Go语言】变量 VSCode插件 setting的首选项 一个程序就是一个世界 变量是程序的基本组成单位 变量的使用步骤 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zuxG8imp-1691479164956)(https://cdn.staticaly.com/gh/hudiework/imgmain/image-20…

CAD随机球体颗粒过渡区3D插件

插件介绍 CAD随机球体颗粒&过渡区3D插件可用于在AutoCAD软件内生成随机分布的球体及球体外侧过渡区部件,适用于科研绘图、有限元建模如混凝土细观、颗粒增强复合材料、随机三维骨料及过渡区等方面的应用。 插件可指定的参数有模型的长、宽、高;球…

< JavaScript小技巧:如何优雅的用【一行代码 】实现Js中的常用功能 >

文章目录 💬 前言👉 数组相关① 随机打乱数组顺序② 借助 new Set()对数组去重 / 对象数组根据唯一值去重③ 查找数组中 【 最值 】 出现的索引 👉 Web浏览器相关① 重新加载当前页面,相当于 Ctrl R② 滚动…

解决VScode远程服务器时opencv和matplotlib无法直接显示图像的问题

解决VScode远程服务器时opencv和matplotlib无法直接显示图像的问题 1、本方案默认本地已经安装了VScode与MobaXterm2、在服务器端3、在本地端安装MobaXterm4、测试5、opencv显示测试(测试过程中需保持MobaXterm开启的状态)6、 matplotlib显示测试&#x…

VSCode Remote-SSH (Windows)

1. VSCode 安装 VSCode 2. 安装扩展 Remote SSH Getting started Follow the step-by-step tutorial or if you have a simple SSH host setup, connect to it as follows: Press F1 and run the Remote-SSH: Open SSH Host… command.Enter your user and host/IP in the …

qemu 虚拟化

一、介绍QEMU Qemu是种非常古老的虚拟化技术,用于虚拟化系统组件并在其上运行多种CPU架构的程序或操作系统。 借助KVM,Qemu可以通过使用基于硬件的虚拟化来获得超快的计算速度。QEMU充当硬件供应商,KVM是CPU。KVM驻留在Linux内核中&#xff0…

Linux下的环境变量

目录 一、环境变量是什么?二、常见的环境变量三、查看环境变量的方法四、和环境变量相关的命令五、命令行参数五、环境变量通常是具有全局属性的 一、环境变量是什么? 环境变量通俗来说就是一种存储系统和应用程序运行需要的配置信息的方式。可以把环境…

Mr. Cappuccino的第57杯咖啡——简单手写Mybatis大致原理

简单手写Mybatis大致原理 大致原理项目结构项目代码代码测试 大致原理 底层基于JDK动态代理技术实现 项目结构 项目代码 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns…

Flutter 自定义view

带进度动画的圆环。没gif&#xff0c;效果大家自行脑补。 继承CustomPainter&#xff0c;paint()方法中拿到canvas&#xff0c;绘制API和android差不多。 import package:flutter/material.dart;class ProgressRingPainter extends CustomPainter {double strokeWidth 20;Col…

整数规划——第三章 全单模矩阵

整数规划——第三章 全单模矩阵 若线性规划问题的约束矩阵为全单模矩阵&#xff0c;则该问题可行域的顶点都是整数点&#xff0c;从而线性规划与整数规划的最优解相同。 3.1 全单模性与最优性 考虑线性整数规划问题&#xff1a; (IP) min ⁡ c T x , s . t . A x ≤ b , x …