LInux的PXE批量高效自动装机

导读:本篇文章讲解 LInux的PXE批量高效自动装机,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

一、PXE原理和概念

1、PXE是什么?

PXE是由intel公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装或整个操作系统。

PXE严格来说并不是一种安装方式,而是一种引导的方式,进行PXE安装的必要条件是要安装的计算机中包含一个PXE支持的网卡(NIC),即网卡中必须要有PXE Clinet。PXE(pre-boot Execution Environment)协议使计算机可以通过网络启动。

解释: 在配置PXE的时候,为了联网不将以前的网卡删除,可以添加一个新的网卡,在该网卡的ip地址网段中,需要由存在client 客户端(需要安装系统的主机)。

PXE协议分为Client端和server端

  • PXE client在网卡ROM(存储器)中,当计算机进行开机引导时,BIOS把PXE Clinet 调入内存执行,由PXE client 将放置在PXE server 中的 文件通过网络下载到本地运行。

运行PXE协议需要设置DHCP服务和TFTP服务

  • DHCP服务用来给 PXE clinet 分配一个ip地址,由于是给PXE client分配IP地址,所以在配置DHCP服务时需要增加相应的PXE设置。

  • 在PXE client的ROM中,已存在了TFTP client ,PXE client通过TFTP协议到TFTP Server上下载所需的文件。

2、PXE的优点

规模化: 同时装配多台服务器

自动化: 安装系统、配置各种服务

远程实现: 不需要光盘、U盘等安装介质

3、对 PXE client 的要求

  • 客户机的网卡需要支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。

  • 目前绝大多数服务器和大多数的PC 都能够提供此支持,只需要在BIOS设置中允许从Net work 或LAN(局域网) 启动即可。

  • 网络中有一台DHCP服务器以便为客户机自动分配、指定引导文件位置。

  • 服务器通过TFTP(简单文件传输协议),提供引导镜像文件的下载。

4、kickstart概述

ickstart 是一种无人值守安装方式。

kickstart 的工作原理

  • 通过记录典型的安装过程中所需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件,在其后的安装过程中(不只局限于生成kickstart安装文件的及其)当出现要求添加参数的情况时,安装程序会首先去查找kickstart生成的文件,当找到合适的参数,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。

  • 这样,如果kickstart 文件涵盖了安装过程中的出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处去ks.cfg文件,然后去忙自己的事情,等待安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。

5、PXE服务器和客户机的工作过程(重点)

①PXE客户机向DHCP请求,向DHCP服务器申请IP 地址

②DHCP服务器响应PXE客户机的请求,自动从IP 地址池中分配一个IP地址给PXE客户机,并告知PXE客户机:TFTP服务器的IP地址和PXE引导程序文件pxelinux.0 ,默认在TFTP共享目录/var/lib、tftpboot/下。

③PXE客户机向TFTP服务器发起获取pxelinux.0 引导程序文件的请求。

④TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0 文件传输给PXE客户机。

⑤PXE客户机通过网络来启动到系统安装主界面

⑥PXE客户机向文件共享服务器(“ftp”、“http”、“nfs”等)发起获取centos或windows系统安装文件的请求。

⑦文件共享服务(vsftp服务)响应PXE客户机的请求,将共享的系统安装文件传输给PXE客户机

⑧PXE客户机进入到安装提示界面,用户需要手动来完成系统安装的操作。

小结解释:

①DHCP分配给新建机器IP地址,然后告知客户机的网卡中的PXE客户机的TFTP的位置

②PXE客户端向TFTP请求下载操作系统镜像的引导文件

③PXE通过网络向vsftp请求下载操作系统安装文件

④直接通过TFTP获得的引导文件+从vsftp获得的操作系统安装文件来进行引导、加载,然后到达安装向导界面

⑤通过kickstart设置无人值守安装。

在这里插入图片描述

二、搭建PXE服务器

所需要的安装包

vsftpd   //用来放置安装镜像,通过ftp访问镜像安装
dhcp.x86_64 12:4.2.5-7pd-3.0.2-27.el7.x86_64.r9.el7.centos  //用来给客户机分配ip
syslinux-4.05-15.el7.x86_64.rpm  //用来提供pxe的引导程序
tftp-server.x86_64 0:5.2-22.el7.rpm   //用来提供引导镜像文件的下载
xinetd.x86_64 2:2.3.15-14.el7    //用来托管tftp
system-config-kickstart.noarch 0:2.9.7-1.el7.rpm   //用来无人值守安装

1、环境准备

一台作为PXE服务器,一台作为裸金属客户机(没有操作系统的机器),绑定的同一块网络适配器网关,裸金属客户机vmnet1网卡,取消勾选dhcp配置,关闭selinux和防火墙。

服务端介绍

主机服务器地址:20.0.0.55 主机名:ydq1

配置双网卡
一个作用为可联网,进行下载服务(网络配置NAT:20.0.0.55)
一个作用为dhcp(192.168.158.100)

dhcp部署
- tftp-server   服务器通过 TFTP(简单文件传输协议)提供引导镜像文件的下载(默认共享目录/var/lib/tftpboot)。
- syslinux  //用来提供pxe的引导程序
- xinetd  //用来托管tftp
- vsftpd   //用来放置安装镜像,通过ftp获取镜像安装文件
- kickstart //用来无人值守安装 (定义模板-应答文件  白屏点点点定义安装向导中选择的模板)

客户机介绍

将网络设置成vmware 1 即可

2、添加一块网卡并设置

查看vmware 1的ip地址
在这里插入图片描述

在服务器上添加网卡,设置成仅主机模式

在这里插入图片描述

在需要安装的客户机上,设置成仅主机模式

在这里插入图片描述

查看网卡是否添加完成

在这里插入图片描述

新建网卡文件
在这里插入图片描述

配置网卡文件
在这里插入图片描述

重启网卡,查看配置

image-20220617165824401

3、安装DHCP服务

关闭防火墙核心防护

在这里插入图片描述

安装dhcp服务

在这里插入图片描述

将模板配置文件拷贝到dhcp默认执行的配置文件中

在这里插入图片描述

编辑DHCP服务器的配置文件(/etc/dhcp/dhcpd.conf)

在这里插入图片描述

开启dhcp服务

在这里插入图片描述

4、安装TFTP服务

TFTP(简单文件传输协议)是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合小文件传输的应用场合。

  • TFTP服务默认由xinetd服务进行管理,使用UDP端口69
  • xinetd是新一代的网络守护进程服务程序,又叫超级服务器,常用来管理多种轻量级internet服务
  • TFTP和FTP区别就是他没有交互式,并且不进行身份验证。

4.1 安装并开启xinetd 、tftp服务

安装出现问题位置错误

在这里插入图片描述

关闭en35网卡并重新安装

在这里插入图片描述

开启ens35服务

在这里插入图片描述

在xinetd服务中开启tftp服务

在这里插入图片描述

4.2 配置tftp需要传输的文件

将镜像文件中的 内核文件系统的初始化文件 复制到tftp默认共享的目录中,以便后续客户端下载

用于PXE网络安装的linux内核,驱动文件可以从centos系统光盘镜像中获得,分别为vmlinuz 和 initrd ,位于光盘目录/mnt/images/pxeboot 目录下,找到这两个文件复制到tftp 服务的根目录下

将镜像挂在到本地

在这里插入图片描述

将镜像中的文件拷贝的TFTP默认的共享目录中

vmlinuz :是可引导的,压缩的内核。vm 代表 “virtual Memory” 。
 linux支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。
 Linux能够使用磁盘空间作为细腻内存,因此得名“VM”。vmlinuz是可执行的linux内核,
 它位于/boot/vmlinuz,它一般是一个软链接。

initrd :是“inital ramdisk” 的简写(系统初始化文件),
initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。
initrd.img主要是用于加载ext4等文件系统及sisi设备的驱动,
比如,使用的scsi银盘,而内核vmlinuz并没有这个scsi硬件的驱动,那么装入scsi模块之前,
内核不能加载根文件系统,但scsi模块存储在根文件系统的/lib/modulesz下,
为了解决这个问题,可以引导一个能够读史记内核的initrd内核并用initrd修正scsi引导问题。

在这里插入图片描述

开启 xinetd 和 tftp 服务

在这里插入图片描述

5、准备 PXE 引导程序

pxelinux.0 是个二进制文件,主要作用相当于一个系统安装步骤的指引,引导客户端如何安装系统

查找这个文件是由哪个软件包安装的,当不是一个路径和一个软件时用 ” / ” 表示文件

在这里插入图片描述

安装pxelinux.0的软件包

在这里插入图片描述

查看pxelinux.0文件的位置

在这里插入图片描述

复制pxelinux.0引导程序文件到TFTP共享目录中

在这里插入图片描述

5、配置启动菜单文件

启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载驱动。默认的启动菜单文件为:default,应放置在tftp根目录的pxelinux.cfg子目录下,典型的启动菜单配置可参考以下自动或手动建立。

至于为什么要是/var/lin/tftpboot/pxelinux.cfg/default 文件,因为时由pxelinux.0这个文件决定好的。

创建启动菜单文件

在这里插入图片描述

编辑引导文件中的内容

文件内容介绍

default auto //指定默认入口名称 ,对应下面的label auto
prompt 1 //设置是否等待用户选择,1 表示等待用户控制,0表示不等待用户控制,安装时会出现boot:如果按回车表示选择auto模式


label auto   //默认的图形安装
      kernel vmlinuz 
      append initrd=initrd.img method=ftp://192.168.158.100/centos7    //method必须指定网络路径

label linux text    //文本安装模式,出现boot:时输入linux text
      kernel vmlinuz 
      append text initrd=initrd.img method=ftp://192.168.158.100/centos7 

label linux rescue    //救援模式,出现boot:时输入linux rescue
      kernel vmlinuz 
	  append rescue initrd=initrd.img method=ftp://192.168.158.100/centos7

进行编辑

在这里插入图片描述

6、安装ftp服务、准备centos 7 安装源

ftp 服务的安装包为 vsftpd,前面的tftp服务主要用于传输一些小文件,比如引导文件、引导内核文件,使用ftp传输一些重要文件,因为ftp传输时加密的,tftp是明文传输,不够安全。

安装ftp软件包

在这里插入图片描述

将镜像文件拷贝到ftp默认的共享目录中

  • 在前面拷贝内核文件和系统初始化的文件已经挂载了镜像,现在只需要进行拷贝过去就行

  • 在ftp共享目录中创建一个centos 7 目录用来装系统镜像 ,然后进行拷贝过去

在这里插入图片描述

开启FTP服务

在这里插入图片描述

7、实现Kickstart无人值守安装

  • kickstart 的安装包为“ system-config-kickstart ”
  • 安装好这个软件包后,可在linux的系统工具中查看到 kickstart ,打开可进行配置自动安装引导。

下载kickstart软件包(system-config-kickstart)

在这里插入图片描述

进入linux系统进行配置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

可在/var/ftp 目录下查看到保存的文件

在这里插入图片描述

8、添加ks引导参数至菜单文件

在本地用户的家目录下有一个文件anaconda-ks.cfg 文件,这个文件中存在许多需要开机安装的软件包,需要将他们复制到前面新创建的ks.cfg文件中

在这里插入图片描述

在这里插入图片描述

将上面的文件内容复制到下面的文件中去

在这里插入图片描述

在这里插入图片描述

再次编辑defaulst引导文件

  • 当客户机每次以PXE方式引导时,将自动下载ks.cfg应答配置文件,然后根据其中的设置安装centos系统,无需手工干预。

在这里插入图片描述

9、客户机进行开机查看是否自动安装

开启一台裸金属客户机(注意网络的设置)

在这里插入图片描述

然后等待自动安装最后进入系统界面即可完成所有的安装

三、总结

总体来说步骤

配置双网卡—-> 使用DHCP服务获取IP地址—>使用tftp服务共享内核文件和初始化文件—-> 配置引导程序—–> 配置菜单文件 —->使用FTP服务共享镜像文件—–> 实现无人值守安装步骤。

使用PXE安装的步骤

1、配置双网卡、一块网卡作为NAT,用来下载,一块网卡作为仅主机模式,连接PXE客户机

2、安装DHCP服务,给客户机分配ip地址,并告诉客户机tftp服务器的位置和pxelinux.0的位置

3、安装TFTP服务,安装TFTP服务必须要安装 xinetd 服务,因为被他托管,然后再安装tftp服务(安装包:tftp-server

  • 在xinetd的配置文件 /etc/xinetd.d/tftp 文件开启tftp服务的功能。然后才能使用tftp服务
  • 使用tftp服务将系统镜像目录中的 /mnt/image/pxeboot 下的 initrd.img(系统初始化文件)vmlinuz(内核文件) 文件复制到TFTP服务的共享目录 /var/lib/tftpboot

4、将 pxelinux.0 引导程序文件复制到 tftp共享目录 /var/lib/tftpboot 目录下,pxelinux.0 文件需要使用安装包 syslinux 进行安装,安装后将配置文件复制过去,配置文件的位置使用 rpm -ql | grep pxelinux.0 进行查找

5、 配置启动菜单文件,在tftp共享目录下 /var/lib/tftpboot 目录下创建一个目录 pxelinux.cfg 然后再在该目录下创建一个文件 default 文件,设置 default 文件中的内容(如何调用内核、加载驱动)

6、 安装FTP服务, 安装包为:vsftp ,将系统镜像文件全部拷贝到FTP默认的镜像文件中 /var/ftp/centos

7、实现 kickstart 无人值守安装步骤,安装软件包名称:system-config-kickstart,配置好后在 /var/ftp/ 目录下,可以查看到文件 ck.cfg 文件,然后将家目录下文件 ~/anaconda-ks.cfg 文件中一些需要安装的引导参数加入到 /var/ftp/ck.cfg 文件中。

8、进入 /var/lib/tftpboot/pxelinux.cfg/default 更新 default 文件,加入 ks.cfg 文件位置。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/75053.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!