基于DHCP和TFTP服务下的PXE无人值守安装Linux操作系统

前言

在企业中,要给很多台主机安装操作系统,要是每一台主机都用光盘一台一台的去安装就太浪费时间和精力了,这也并不实际,那么要为多台主机自动安装操作系统我们要怎么实现呢?接下来就让我们来看看用DHCP和TFTP服务自动化的为多台主机安装操作系统。

什么是TFTP?

TFTP(trivial file transfer protocol)是一个传输文件的简单协议,它基于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的。此协议设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,它传输8位数据。

什么是PXE?

  PXE(preboot execute environment,预启动执行环境),严格来说并不是一种安装方式,而是一种引导方式。是工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。
  磁盘是通过磁头读取信息,当计算机关机时,磁盘的磁头会回到零磁道,而零磁道上有一个引导程序—pxelinux,会引导磁头去读取启动信息,所以磁头在开机时就知道自己要读取哪个扇区的信息了。

基本原理和工作流程

  • 首先,在客户端主机的网卡要支持网络引导,当开机时网卡就会激活当中的程序,自行通过网络向DHCP请求ip地址,并配置在自己的网卡上。
  • 下来,DHCP服务器回应我们的客户端主机,分配给它ip地址,子网掩码,网关等相关参数,DHCP服务器再告诉客户端主机tftp服务器在什么位置。
  • 接着,客户端主机就去请求tftp服务器,我们这里的dhcp服务器和tftp服务器是同一台。tftp服务器会给客户端主机提供一个pxelinux.0文件,这个文件相当于bootloader,是由syslinux这个程序包提供的。
  • 而后,客户端主机利用tftp服务器提供的pxelinux.0文件,再次尝试到tftp服务器上获取内核,因为要启动安装就要启动引导内核。
  • 之后,当引导内核启动后,客户端主机通过default(由pxelinux.0改名而来)文件成功的引导linux安装内核后,通过httpd服务获得default文件中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件。
  • 最后,将ks.cfg文件下载下来后,通过ks.cfg文件的配置,请求下载安装过程所需的安装包,这样就可以实现自动化安装了!

准备工作

我们在自动化安装之前要先确保这几个包已经安装成功:

  • dhcp 分配ip给客户端
  • httpd 安装源共享服务,读取ks.cfg文件
  • syslinux 获得pxelinux.0文件安装包
  • tftp-server 提供tftp协议的服务
  • system-config-kickstart 自动应答脚本制作工具

搜索pxe启动文件的安装包yum whatprovides */pxelinux.0
在这里插入图片描述
搜索tftp服务的安装包
在这里插入图片描述
安装所需要的软件包或服务
在这里插入图片描述
安装完成!
在这里插入图片描述

具体步骤

  • 首先,我们将dhcp服务器里的一些参数配置好,并让dhcp服务器告诉客户端主机tftp服务器在什么位置,要读什么文件,打开dhcp服务。

在这里插入图片描述

  • 然后,开启http服务,部署共享yum源,并关闭防火墙。

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

  • 开启tftp服务,注意rhel7.3或7.0以后的版本可以直接开启。我这里的版本是7.3,可以直接打开。

在这里插入图片描述

通过命令less /usr/share/doc/syslinux-4.05/pxelinux.txt可以了解pxelinux的具体工作说明。

  • 首先,我们先找到tftp-server安装包的安装路径。
    在这里插入图片描述
  • 然后,复制文件到tftpboot下。其中,isolinux目录下的所有文件是内核镜像以及文件系统镜像,目的是让客户端主机在pxe的引导下知道自己内核的安装信息,pxelinux.0目的是让客户端主机在得到ip,网关,子网掩码等信息之后让pxe引导他下一步去哪里。创建pxelinux.cfg目录的原因是他是pxelinux.0的配置目录,创建pxe默认的读取文件default,将isolinux.cfg的文件复制给他。
    在这里插入图片描述
  • 编写自动应答脚本,并将该脚本保存到/var/www/html上。

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

在安装后脚本中写入下列内容。

在这里插入图片描述

再次进入ks.cfg中,写入以下内容。

在这里插入图片描述
检测ks.cfg文件有没有语法错误
在这里插入图片描述

  • 修改default文件下默认的配置信息,在第65行左右添加共享yum源以及ks配置文件。

在这里插入图片描述

测试

打开一台任意虚拟机,将开机启动方式改为网卡启动。
在这里插入图片描述
自动获取到的安装信息。
在这里插入图片描述

补充说明

  • 关于default文件

在文件/var/lib/tftpboot/default中,可以更改等待的时间,网络安装源以及默认的标题等。
在这里插入图片描述
在这里插入图片描述

  • 7.0版本中tftp服务的开启方法

在这里插入图片描述

这里无法直接开启tftp服务,我们需要进入安装xinetd,并修改/etc/xinetd.d/tftp中,将disable改为no
在这里插入图片描述

重启xinetd,systemctl restart xinetd,tftp就成功开启了。
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值