Linux网络引导自动安装centos7

目录

一、部署PXE远程安装服务

1. 系统装机的三种引导方式

2. pxe概述

3. 实现过程

4. 搭建过程中服务介绍

4.1 TFTP服务

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

4.3 syslinux

4.4 DHCP服务

5. 操作过程

二、实现Kickstart无人值守安装

1. 安装Kickstart图形化工具

2. 图形化配置过程 

3. 继续添加配置文件  

4. 启动客户端自动安装

三、Cobbler介绍

1. 启动过程

2. 操作过程

2.1 安装相关包并启动服务  

2.2 修改cobbler相关的配置

2.3 实现dhcp服务

2.4 导入CentOS系统的安装文件,生成相应的YUM源

2.5 客户端安装验证 


一、部署PXE远程安装服务

1. 系统装机的三种引导方式

  • 硬盘
  • 光驱(u盘)
  • 网络启动 pxe

2. pxe概述

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

pxe优点:

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

3. 实现过程

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

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

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

④ bios执行引导程序

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

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

⑦ 系统安装过程

4. 搭建过程中服务介绍

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

4.1 TFTP服务

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

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

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

可以使用http,ftp等方式,ftp文件传输的一种。

4.3 syslinux

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

4.4 DHCP服务

DHCP: Dynamic Host Configuration Protocol,动态主机配置协议;UDP协议,C/S模式,dhcp server: 67/udp,dhcpv4 client :68/udp, dhcpv6 client: 546/udp 主要用途:

  • 用于内部网络和网络服务供应商自动分配IP地址给用户
  • 用于内部网络管理员作为对所有电脑作集中管理的手段
  • 自动化安装系统

5. 操作过程

① 分配给同一局域网内新加机器的地址(配置文件)dhcp分配地址指明tftp服务器的地址

② tftp服务端开启udp配置默认关闭

③ 安装syslinux取得pxelinux.0文件

④ 安装vsftpd服务挂载软件安装源(mount /dev/sr0 /var/ftp/centos7)

⑤ 将四大文件拷入(/var/lib/tftpboot )

  • initrd.img (光盘内 images):是一个包含根文件系统镜像和内核模块的压缩文件,它可以帮助内核在引导时加载必要的驱动程序和文件系统模块,从而保证系统正常启动。
  • pxelinux.0(类似grub,需安装syslinux):pxelinux.0是一个网络引导程序,它可以通过网络从TFTP服务器上下载内核和文件系统镜像,并启动Linux系统。
  • pxelinux.cfg/default (手动创建文件夹,手写default):在PXE引导过程中,计算机会首先获取pxelinux.0文件,这是一个PXE引导加载程序,它会负责加载操作系统镜像和启动操作系统;一旦pxelinux.0被加载,它会查找pxelinux.cfg/default文件。这个文件包含了PXE引导菜单的配置信息,可以用来指定要引导的操作系统镜像、内核参数等。
  • vmlinuz(光盘内 images):vmlinuz是Linux操作系统中的一个关键文件,负责启动系统、管理硬件设备和提供各种系统服务;它具有压缩格式、高度可配置、支持模块化加载、安全可靠等特点。

⑥ 将服务开启,关闭防火墙,selinux

主要文件:
/etc/xinetd.d/tftp:配置文件
/var/lib/tftpboot:站点 

[root@localhost ~]# yum install tftp-server vsftpd syslinux dhcp -y
root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
#将配置文件模板复制到dhcp目录下,并覆盖
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
 32 subnet 192.168.190.0 netmask 255.255.255.0 {    #指定网段
 33   range 192.168.190.50 192.168.190.60;          #定义用于分配的IP地址池
 34   option routers 192.168.190.100;               #指定给客户端分配的网关
 35   next-server 192.168.190.100;                  #指定tftp的服务器地址
 36   filename "pxelinux.0";                        #指定启动文件
 37   } 
[root@localhost ~]# vim /etc/xinetd.d/tftp          #修改配置文件
 14         disable                 = no            #no表示开启TFTP服务
[root@localhost ~]# cd /var/lib/tftpboot/           #切换到站点目录
[root@localhost tftpboot]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost tftpboot]# cp /mnt/isolinux/initrd.img  .
[root@localhost tftpboot]# cp /mnt/isolinux/vmlinuz  .
[root@localhost tftpboot]# ls
initrd.img  vmlinuz
[root@localhost tftpboot]# rpm -ql syslinux | grep pxelinux.0 #查找引导程序文件路径
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0  .  #拷贝到站点文件里
[root@localhost tftpboot]# ls
initrd.img  pxelinux.0  vmlinuz
[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# ls
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz
[root@localhost tftpboot]# vim pxelinux.cfg/default
  1 default linux
  2 timeout 600
  3 
  4 label linux
  5         kernel vmlinuz
  6         append initrd=initrd.img method=ftp://192.168.190.100/centos7
[root@localhost tftpboot]# mkdir /var/ftp/centos7/
[root@localhost tftpboot]# mount /dev/sr0 /var/ftp/centos7/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost tftpboot]# systemctl stop firewalld.service 
[root@localhost tftpboot]# setenforce 0
[root@localhost tftpboot]# systemctl start tftp.socket 
[root@localhost tftpboot]# systemctl start vsftpd
[root@localhost tftpboot]# systemctl start dhcpd

二、实现Kickstart无人值守安装

1. 安装Kickstart图形化工具

[root@localhost tftpboot]# yum install system-config-kickstart -y

2. 图形化配置过程 

3. 继续添加配置文件  

[root@localhost tftpboot]# cd /var/ftp/
[root@localhost ftp]# ls                                #查看应答文件
centos7  ks.cfg  pub
[root@localhost tftpboot]# vim pxelinux.cfg/default
  1 default linux
  2 timeout 600
  3 
  4 label linux
  5         kernel vmlinuz
  6         append initrd=initrd.img method=ftp://192.168.190.100/centos7 ks=ftp://192.168.190.100/ks.cfg
#将应答文件位置指明

4. 启动客户端自动安装

三、Cobbler介绍

1. 启动过程

  • 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

2. 操作过程

2.1 安装相关包并启动服务  

[root@localhost ~]# yum install epel-release.noarch -y
[root@localhost ~]# yum install cobbler dhcp httpd  -y
[root@localhost ~]# systemctl enable --now cobblerd httpd tftp dhcpd

2.2 修改cobbler相关的配置

[root@localhost ~]# cobbler check
#生成新密码,默认安装好的系统root密码为cobbler
[root@localhost ~]# openssl passwd -1 '123123'  #配置root修改密码生成密钥
$1$Mpd6eW5n$r4EVXEzCVUc5.w.Ok77f31
[root@localhost ~]# vim /etc/cobbler/settings
101 default_password_crypted: "$1$fTpFEKwU$pPPBZwUVJuXOcRmmW4JAJ0"
242 manage_dhcp: 1                            #设置为1,表示通过cobbler生成dhcpd.conf配置文件
278 next_server: 192.168.190.101              #tftp服务器的IP地址 
298 pxe_just_once: 1                          #设置为1,防止重复安装系统
390 server: 192.168.190.101                   #cobbler服务器的IP地址
[root@localhost ~]# systemctl restart cobblerd

2.3 实现dhcp服务

[root@localhost ~]# vim /etc/cobbler/dhcp.template  #修改模板文件
 21 subnet 192.168.190.0 netmask 255.255.255.0 {
 22      option routers             192.168.190.2;
 23      option domain-name-servers 8.8.8.8;
 24      option subnet-mask         255.255.255.0;
 25      range dynamic-bootp        192.168.190.20 192.168.190.30;
[root@localhost ~]# cobbler sync
……
*** TASK COMPLETE ***
[root@localhost ~]# systemctl restart cobblerd.service
[root@localhost ~]# tree /var/lib/tftpboot
/var/lib/tftpboot                                   #已同步信息
├── boot
│   └── grub
│       └── menu.lst
├── etc
├── grub
│   ├── efidefault
│   └── images -> ../images
├── images
├── images2
├── memdisk
├── menu.c32
├── ppc
├── pxelinux.0
├── pxelinux.cfg
│   └── default
└── s390x
    └── profile_list

10 directories, 7 files

2.4 导入CentOS系统的安装文件,生成相应的YUM源

[root@localhost ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# cobbler import --name=centos-7-x86_64 --path=/mnt --arch=x86_64
task started: 2024-01-17_202530_import
task started (id=Media import, time=Wed Jan 17 20:25:30 2024)
……
*** TASK COMPLETE ***
[root@localhost ~]# cd /var/www/cobbler/ks_mirror/
[root@localhost ks_mirror]# ls
centos-7-x86_64  config                              
[root@localhost ks_mirror]# du -sh /var/www/cobbler/ks_mirror/*
4.3G	/var/www/cobbler/ks_mirror/centos-7-x86_64                 #拷贝的文件
4.0K	/var/www/cobbler/ks_mirror/config 

2.5 客户端安装验证 

 

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

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

相关文章

Codeforce s Round 920 (Div. 3) G题 旋转矩阵,斜缀和,平移

Problem - G - Codeforces 目录 题意: 思路: 总思路: 旋转矩阵: 前缀和预处理: 平移的处理,尤其是越界的处理: 核心代码: 题意: 给你个n*m的矩阵,里…

【论文解读】用于代码处理的语言模型综述

目录 1.简要介绍 2.代码处理的语言模型的评估 3.通用语言模型 4.用于代码处理的特定语言模型 5.语言模型的代码特性 6.软件开发中的LLM 7.结论与挑战 ​​​​​​​1.简要介绍 在这项工作中,论文系统地回顾了在代码处理方面的最新进展,包括50个模…

Elasticsearch各种高级文档操作2

本文来记录下Elasticsearch各种文档操作 文章目录 初始化文档数据 初始化文档数据 在进行各种文档操作之前,我们先进行初始化文档数据的工作

【MySQL】权限控制

DCL-权限控制 查询权限 show grants for 用户名主机名;授予权限 grant 权限列表 on 数据库名.表名 to 用户名主机名;grant all on test.* to user%; %是通配符,表示任意主机。撤销权限 revoke 权限列表 on 数据库名.表名 from 用户名主机名;revoke all on test.*…

10- OpenCV:基本阈值操作(Threshold)

目录 1、图像阈值 2、阈值类型 3、代码演示 1、图像阈值 (1)图像阈值(threshold)含义:是将图像中的像素值划分为不同类别的一种处理方法。通过设定一个特定的阈值,将像素值与阈值进行比较,根…

【代码随想录07】344.反转字符串 541. 反转字符串II 05.替换空格 151.翻转字符串里的单词 55. 右旋转字符串

目录 344. 反转字符串题目描述做题思路参考代码 541. 反转字符串 II题目描述参考代码 05. 替换数字题目描述参考代码 151. 反转字符串中的单词题目描述参考代码 55. 右旋转字符串题目描述参考代码 344. 反转字符串 题目描述 编写一个函数,其作用是将输入的字符串反…

指向未来: 量子纠缠的本质是一个指针

指向未来: 量子纠缠的本质是一个指针 概述基本概念理解量子纠缠PythonJavaC 理解波粒二象性PythonJavaC 理解量子隧穿理解宇宙常量PythonJavaC 概述 量子纠缠 (Quantum Entanglement) 是量子系统重两个或多个粒子间的一种特殊连接, 这种连接使得即使相隔很远, 这些粒子的状态也…

Git怎么将文件夹上传至github,全过程

小白建议参考github文件上传全流程-新手入门系列(超详细!!!) 中间可能会有报错 $ ssh -T gitgithub.com ssh: connect to host github.com port 22: Connection timed out 这时,参考,如何解决&a…

视频美颜SDK技术解析与技术对比

当下,各类应用和服务纷纷采用视频美颜SDK,以提供更加令人满意的视觉效果。本文将深入探讨视频美颜SDK的技术原理,同时对比不同SDK的特性,为开发者和决策者提供全面的技术参考。 一、技术原理解析 1.图像处理基础 视频美颜SDK基…

模具制造企业ERP系统有哪些?企业怎么选型适配的软件

模具的生产管理过程比较繁琐,涵盖接单报价、车间排期、班组负荷评估、库存盘点、材料采购、供应商选择、工艺流转、品质检验等诸多环节。 有些采用传统管理手段的模具制造企业存在各业务数据传递不畅、信息滞后、不能及时掌握订单和车间生产情况,难以对…

阿里云云原生助力安永创新驱动力实践探索

云原生正在成为新质生产力变革的核心要素和企业创新的数字基础设施。2023 年 12 月 1 日,由中国信通院举办的“2023 云原生产业大会”在北京召开。在大会“阿里云云原生”专场,安永科技咨询合伙人王祺分享了对云原生市场的总览及趋势洞见,及安…

Unity之四元数

欧拉角 万向节死锁 四元数是什么 Unity中四元数的初始化 四元数和欧拉角的互相转换 补充 四元数相乘代表旋转四元数

基于SpringBoot的民宿预定管理系统 JAVA简易版

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用例设计2.2 功能设计2.2.1 租客角色2.2.2 房主角色2.2.3 系统管理员角色 三、系统展示四、核心代码4.1 查询民宿4.2 新增民宿4.3 新增民宿评价4.4 查询留言4.5 新增民宿订单 五、免责说明 一、摘要 1.1 项目介绍 基于…

6款文章改写神器免费修改文章效果好

文章写作对于很多人来说,写作并不是一件轻松的事情。尤其是在需要频繁产出大量文章的时候,如何保持文章的原创性和质量就成了一个挑战。但是方法还是有的,如今许多免费的文章改写神器可以通过改写文章的方式生成全新的原创文章,从…

MyBatis-Plus的进阶:乐观锁和悲观锁、逻辑删除、分页和查询构造器

目录 1.乐观锁和悲观锁 1.1.什么是乐观锁和悲观锁 1.2.乐观锁和悲观锁的区别 1.3.综合案例 2.逻辑删除 2.1.什么是逻辑删除 2.2.为什么使用逻辑删除 2.3.综合案例 2.3.1.官方提示 2.3.2.配置方式 2.3.3.案例演示 3.分页和查询构造器 3.1.查询构造器 3.2.分页 1.乐…

YOLOv5改进 | 检测头篇 | 利用DynamicHead增加辅助检测头进行针对性检测(让小目标无所遁形)

一、本文介绍 本文给大家带来的改进机制是针对性的改进,针对于小目标检测增加P2层,利用DynamicHead(原版本一比一复现,全网独一份,不同于网上魔改版本)进行检测,其中我们增加P2层其拥有更高的分辨率,这使得模型能够更好地捕捉到小尺寸目标的细节。在这些的基础上配合Dyn…

一、Flask学习之HTML

一、Flask学习之HTML 1.运行简单页面 首先需要搭建环境: pip install flaskfrom flask import Flaskapp Flask(__name__)# 创建了网址 /show/info 和函数index之间的对应关系,以后用户在浏览器上访问/show/info,网站自动执行index函数 ap…

npm超详细安装(包括配置环境变量)!!!npm安装教程(node.js安装教程)

安装node.js:(建议选择相对低一点的版本,相对稳定)​下载完成直接点击next即可(安装过程中会直接添加path的系统变量,变量值是自己的安装路径,可自行选择,比如:D:\software\)​安装完成:winR打开电脑控制台&#xff0c…

python依赖安装、执行、打包

python依赖安装、执行、编译打包 本文介绍python项目的依赖安装、执行、以及使用pyinstaller编译打包成可执行文件的命令。 python项目执行部署有两种方式,具体步骤: 一、python环境安装 --> 安装pip --> 依赖包安装 --> 执行python程序 二、使…

操作系统课程设计-Linux 进程间通信

目录 前言 1 实验题目 2 实验目的 3 实验内容 3.1 步骤 3.2 关键代码 3.2.1 Server和Client的创建 3.2.2 Server核心代码 3.2.3 Server核心代码 4 实验结果与分析 5 代码 前言 本实验为课设内容,博客内容为部分报告内容,仅为大家提供参考&…