【Linux网络服务】PXE批量安装系统服务

338 阅读7分钟

PXE批量安装系统

cdd55fdc6f0e7d39af589eb325e8bf4.jpg

一、PXE的简介

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

  • PXE远程装系统,裸机装系统,重装系统

  • PXE是通过网卡引导启动

二、PXE服务的优点

  1. 规模化:同时装配多台服务器,无需每一台单独安装操作系统;

  2. 自动化:实现服务器的自动安装及自动配置各种服务;

  3. 远程实现:不需要光盘、U盘等安装介质,方便快捷的同时又可以保障服务器安全。

三、搭建PXE网络体系前提条件

客户端

客户机的网卡要支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。一般大多数服务器主机都支持,只需在BIOS设置中允许从 Network 或 LAN 启动即可。

服务端

  • 需要有DHCP 服务以便为客户机自动分配地址、指定引导文件位置。

  • 服务器要通过 TFTP服务(简单文件传输协议)来提供系统内核和引导镜像文件的下载。

  • 服务器中使用FTP服务(或http/nfs)font> :提供yum安装源

  • 安装软件包syslinux :提供PXE引导程序

四、PXE装机需要的四大文件

  • pxelinux.0:引导程序。(来自syslinux程序)

  • default:引导程序的配置文件。(需要手写,可参考光盘 isolinux 目录下的 isolinux.cfg 文件)

  • vmlinuz:内核文件。(从光盘中获取,位于 isolinux 目录下)

  • initrd.img: 系统启动镜像文件。(从光盘中获取,位于 isolinux 目录下)

说明initrd的作用

  • initrd 的英文含义是 boot loader initialized RAM disk,即由引导程序初始化的RAM磁盘。initrd是在实际根文件系统可用之前挂载到系统中的一个初始根文件系统。initrd与内核绑定在一起, 并作为内核引导过程的一部分进行加载。内核然后会将这个initrd文件作为其阶段引导过程的一部分来加载模块,这样才能在以后的引导过程中使用真正的文 件系统,并挂载实际的根文件系统。根文件系统可以存储在包括IDE、SCSI、USB在内的多种介质上,如果将这些设备的驱动都编译进内核,可以想象内核 会多么庞大、臃肿。所以可以把initrd看做是在启动过程中连接内核与根文件系统的一个桥梁。

五、PXE的原理

image-20211017230945914.png

1. PXE的搭建过程

  • 客户机的网卡查找相关的dhcp服务器(获取地址和时间)。

  • DHCP服务器给客户机分配IP地址和引导程序(boot loader)的地址 ,同时通过offer报文把TFTP服务器的地址发给客户机。

  • TFTP服务器把引导文件(pxelinux.0)传给客户机。

  • 客户机将引导程序加载到内存中来。

  • 引导程序去TFTP服务器中查找配置文件,服务器将配置文件传给客户机。(配置文件中指定客户机使用ftp方式连接服务器获取系统镜像文件)

  • 服务端安装并启动vsftpd服务,客户机使用ftp服务获取系统镜像文件。

2. 搭建过程中服务详解

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

网卡自带DHCP服务和TFTP服务。

DHCP服务

DHCP是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。

TFTP服务

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

  • TFTP服务一般只在装机这种场景下使用,用于传输内核和引导文件。因为安全性不高。

  • 自带的站点:/var/lib/tftpboot

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

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

syslinux

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

安装syslinux程序后,可获得 pxelinux.0 文件。

六、kickstart 无人值守安装

kickstart文件主要包括三个部分:命令段,程序包段,脚本段

命令段:指明各种安装前配置,如键盘类型等

命令段中的常见命令:

keyboard: 设定键盘类型

lang: 语言类型

zerombr:清除mbr

clearpart:清除分区

part: 创建分区

rootpw: 指明root的密码

timezone: 时区

text: 文本安装界面

network:指定网络设置

firewall:设置防火墙设置

selinux:设置selinux设置

reboot:安装完自动重启

user:安装完成后为系统创建新用户

url: 指明安装源

程序包段:指明要安装的程序包组或程序包,不安装的程序包等

%packages

@^environment group: 指定环境包组,如:@^minimal-environment

@group_name

package

-package

%end

脚本段:

%pre: 安装前脚本

%post: 安装后脚本

七、PXE网络装机实验

简易流程

  1. 安装4个软件包:dhcp、tftp-server、vsftpd、syslinux(取得prelinux.0文件)。
  2. 配置DHCP服务器,分配IP地址,指明tftp服务器的地址。(虚拟机需要开启仅主机模式,模拟内网环境)
  3. 编辑TFTP服务配置文件,开启服务(默认是关闭状态)。
  4. 挂载软件安装源(通常情况下都使用光盘中的安装源,即挂载光驱),并将三大文件先拷入/var/lib/tftpboot/ 目录中:pxelinux.0,vmlinuz,initrd.img。
  5. 在/var/lib/tftpboot/ 目录下,创建子目录pxelinux.cfg,在子目录下编写引导程序的配置文件default。
  6. 关闭防火墙和selinux。启动dhcpd、tftp、vsftpd。
  7. 使用空白客户机(裸机)测试能否自动装机。

操作过程

步骤1:yum安装dhcp软件

image.png

步骤2:先将/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example复制到/etc/dhcp/dhcpd.conf安装配置文件

image.png

步骤3:修改/etc/dhcp/dhcpd.conf配置文件

1714991918461.jpg

image.png

步骤4:yum安装tftp软件

image.png

步骤5:查看tftp-server的配置文件地点,修改vim /etc/xinetd.d/tftp 配置文件

image.png

image.png

步骤6:切换到/var/lib/tftpboot 文件下是tftp的家目录,创建四大文件

image.png

步骤7:将光驱挂载到/mnt下,将mnt下的vmlinuz和initrd.img文件拷到本目录下

image.png

步骤8:yum安装syslinux 软件

image.png

步骤9:去查找syslinux中pxelinux的配置文件

image.png

步骤10:将pxelinux.0文件拷到本文件夹下,这样就有四大文件中的三个了

image.png

步骤11:yum安装vsftpd软件

image.png

步骤12:在/var/ftp下新建一个文件夹,将光驱挂载到文件夹中,获取安装包

image.png

步骤13:回到tftpboot目录,文件夹下创建第四个文件夹pxelinux.cfg,在这个文件夹下写一个default文件只能是这个名字

image.png

image.png

步骤14:四大文件配置修改好后,都需要把软件重新启动

image.png

步骤15:这些都准备完后,新建一个虚拟机安装测试,等一会就会刷新安装界面(初始化界面)

image.png

1715064083630.jpg

步骤16:使用kickstart技术,进行自动化安装,先yum安装软件system-config-kickstart

image.png

步骤17:进入虚拟机界面,在kickstart中进行配置程序

image.png

image.png

image.png

ce0e1b923d77314c2d18e848947e95c.png

9e39ddc79b5b2afccdceb2d6707e93a.png

d09bede9aacb0f2f1fc767c6ceea394.png

image.png

image.png

image.png

步骤18:点击文件进行保存

3853b07b5fbc52ac89b6e19a592b52f.png

步骤19:进入/var/ftp/文件下查看是否保存好了

image.png

步骤20:切换到pxelinux.cfg文件夹下,修改default文件,添加ks文件的地址

image.png

image.png

步骤21:重启我们要安装系统的虚拟机查看是否能正常安装

image.png