PXE和kickstart无人值守安装

PXE高效批量网络装机

引言

1.系统装机的引导方式

启动 操作 系统

1.硬盘

2.光驱(u盘)

3.网络启动 pxe

重装系统?

在已有操作系统

新到货了一台服务器,

装操作系统

系统镜像 u盘 光盘

pe: 小型的 操作系统 在操作系统 再装操作系统

pxe

2.系统安装过程

  • 加载boot loader

Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境

  • 加载启动安装菜单

  • 加载内核和initrd系统(文件才能使用文件)

  • 加载根系统()

  • 运行anaconda的安装向导

Linux安装光盘的安装相关文件

在系统光盘的isolinux目录下有和安装相关的文件

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

  • isolinux.bin:光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目

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

  • vesamenu.c32:是光盘启动后的启动菜单图形界面,也属于SYSLINUX项目,menu.c32提供纯文本的菜单

  • memtest:内存检测程序

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

  • vmlinuz:是内核映像

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

1.PXE介绍

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

pxe是通过网卡引导启动

1.1实现的硬件条件

1.BIOS支持

2.网卡支持(现在基本都已支持)

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

4.网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置    网卡自带DHCP功能    dhcp 指明分配的ip地址  

vsftpd   tftp

5.服务器通过 tftp服务(简单文件传输协议)来提供系统内核和引导镜像的下载 udp()协议 网卡自带这个功能(不支持其他的远程共享服务)

2.实现过程简述

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

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

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

4.bios执行引导程序

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

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

7.系统安装过程

3.搭建过程叙述

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

3.1TFTP

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

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

3.2vsftp:安装系统

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

3.3syslinux

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

pxelinux.0 启动pxe pxe可以支持

4.pxe优点

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

5.PXE和kickstart无人值守安装的操作过程

systemctl  stop firewalld

setenforce  0

#关闭防火墙和核心防护

yum install tftp-server   vsftpd   syslinux  dhcp   -y 

#安装软件

cat  /etc/dhcp/dhcpd.conf

#dhcp的配置文件

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

#将配置文件模板复制到dhcp目录下

vim /etc/dhcp/dhcpd.conf

#编辑dhcp配置文件

systemctl start dhcpd

#开启dhcp服务

vim  /etc/xinetd.d/tftp

#编辑tftp服务的配置服务

cd  /var/lib/tftpboot

#切到tftp的主目录下

mount  /dev/sr0  /mnt

#挂载到mnt下

cp  /mnt/isolinux/initrd.img    .

#拷贝镜像文件到tftpboot下

cp  /mnt/isolinux/vmlinuz    .

#拷贝内核文件到tftpboot下

rpm  -ql  syslinux | grep pxelinux.0

#查找syslinux中的pxelinux.0的文件

cp /usr/share/syslinux/pxelinux.0          .

#将syslinux中的pxelinux.0文件复制到当前目录下

mkdir pxelinux.cfg

#创建文件夹

vim pxelinux.cfg/default

#创建default文件

mkdir  /var/ftp/centos7

#新建文件夹

mount /dev/sr0  /var/ftp/centos7

#挂载

systemctl start tftp.socket

#开启tftp服务

systemctl start vsftpd

#开启ftp服务

 虚拟机内存一定要大于2G

yum  install  system-config-kickstart.noarch  -y

#安装图形化工具

进入虚拟机操作

回到服务器

要在一台新建的虚拟机下重启实验!并且内存要大于2GB!

6.Cobbler原理

  • 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

6.1实际操作

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

[root@centos7 ~]#cobbler check

 openssl passwd -1 '123123'

#生成一个密钥文件

vim /etc/cobbler/settings 

$1$cWzI./u.$uoGgVITPzCR1NbSYCbn/t.

#修改主配置文件

 

 

 

vim /etc/cobbler/dhcp.template

#dhcp的配置模板

 

mount   /dev/sr0  /mnt

#挂载

cobbler import --name=centos-7-x86_64 --path=/mnt --arch=x86_64

#把镜像文件拷贝到固定目录下

du -sh /var/www/cobbler/ks_mirror/*

#拷贝到了这边,输入命令可以看到

 

在新建的无配置过的虚拟机里,重新启动,检验实验有没成功 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 编程需要什么样的开发环境?

C 编程需要什么样的开发环境? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「C的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!&#…

OceanBase OBCA认证考试预约流程

【OceanBase】OBCA认证考试预约流程 - 课程体系 - 云贝教育https://www.yunbee.net/Home/News/detail/article_id/541.html 一、OBCA账号登录/注册,链接 https://www.oceanbase.com/ob/login/mobile?gotohttps%3A%2F%2Fwww.oceanbase.com%2Ftraining%2Fdetail%3Fle…

UE5 独立程序的网络TCP/UDP服务器与客户端基础流程

引擎源码版,复制\Engine\Source\Programs\路径下的BlankProgram空项目示例。 重命名BlankProgram,例如CustomTcpProgram,并修改项目名称。 修改.Build.cs内容 修改Target.cs内容 修改Private文件夹内.h.cpp文件名并修改.cpp内容 刷新引擎 …

maven环境搭建(打包项目)

Maven:直观来讲就是打包写好的代码封装 Apahche 软件基金会(非营业的组织,把一些开源软件维护管理起来) maven apahce的一个开宇拿项目,是一个优秀的项目构建(管理工具) maven 管理项目的jar 以及jar与j…

FastAdmin上传图片服务端压缩图片,实测13.45M压缩为29.91K

先前条件:第一步安装compose,已安装忽略。 先上截图看效果 一、在fastadmin的根目录里面输入命令安装think-image composer require topthink/think-image二、找到公共上传类,application/common/library/Upload.php,在最下面…

【python】学习笔记01

一、基础语法 1. 字面量 - 什么是字面量? 在代码中,被写下来的的固定的值,称之为字面量。 - 常用的值类型 Python中常用的有6种值(数据)的类型。 666 13.14 "程序员"print(666) print(13.14) print(&qu…

excel统计分析——Scheffe法多重比较

参考资料:生物统计学 Scheffe法(雪费法)多重比较和LSD法一致,但通过k-1作为F分布的第一自由度对临界值进行调整: 其中,k为处理水平数,df为误差自由度;为 excel操作步骤如下&#xf…

基于YOLOv8深度学习的智能肺炎诊断系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

SQL性能分析手段

SQL执行频率 MySQL 客户端连接成功后,通过 show [session|global] status 命令可以提供整个服务器执行sql的状态信息。通过如下指令,可以查看当前数据库的INSERT、UPDATE、DELETE、SELECT的访问频次: -- session 是查看当前会话 ; -- globa…

SpringBoot项目如何优雅的实现操作日志记录

SpringBoot项目如何优雅的实现操作日志记录 前言 在实际开发当中,对于某些关键业务,我们通常需要记录该操作的内容,一个操作调一次记录方法,每次还得去收集参数等等,会造成大量代码重复。 我们希望代码中只有业务相关…

新能源汽车智慧充电桩方案:如何实现充电停车智慧化管理?

一、方案概述 基于新能源汽车充电桩的监管运营等需求,安徽旭帆科技携手合作伙伴触角云共同打造“智能充电设备+云平台+APP小程序”一体化完整的解决方案,为充电桩车位场所提供精细化管理车位的解决办法,解决燃油车恶意…

CHAPTER 9: 《DESIGN A WEB CRAWLER》第9章 《设计一个web爬虫》

CHAPTER 9: 《DESIGN A WEB CRAWLER》第九章 设计一个web爬虫 在本章中,我们将重点介绍网络爬虫设计:一种有趣而经典的系统设计 面试问题。 网络爬虫被称为机器人或蜘蛛。它被搜索引擎广泛用于发现网络上的新内容或更新内容。内容可以是网页、图像、视频…