0
点赞
收藏
分享

微信扫一扫

第四章PXE高校批量网络装机

40dba2f2a596 04-09 15:00 阅读 9

前提条件:

  • PXE技术基于client/server模式运作,客户机需具备支持pxe协议的网卡,且主板需支持网络引导
  • 网络中徐部署DHCP服务器以自动分配IP地址并指定引导文件位置,同时,tftp服务提供了引导镜像文件的下载

a.部署PXE远程安装服务

批量部署方法的优点:

规模化

同时装配多台服务器

自动化

安装系统,配置各种服务

远程实现

不需要光盘,U盘等安装介质

pxe是由intel公司开发的网络引导技术,工作在c/s模式,允许客户端提供网络从远程服务器下载引导镜像,并加载安装文件或整个操作系统

搭建pxe网络体系的前提条件:

硬件需求;客户机的我网卡支持pxe协议(集成bootrom芯片),且主板支持网络引导

网络中有一台dhcp服务器以便为客户机自动分配IP地址,指定引导文件位置

服务器提供tftp提供引导镜像文件的下载

1.搭建pxe远程安装服务器

本例的pxe远程安装服务器集成了Linux安装源,tftp服务,DHCP服务,能够向客户机裸机发送pxe引导程序,Linux内核,启动菜单等数据,以提供安装文件

(1)设备清单

设备

IP地址

系统

备注

pxe服务器

192.168.10.101

openEuler

(2)准备Linux安装源

Linux安装源一般通过HTTP,ftp协议发布,也支持nfs协议

例如:若采用fp协议发布安装源,可以再服务器上部署一个yum软件仓库

[root@localhost~]# systemctl stop firewalld

[root@localhost~]# systemctl disable firewalld 

[root@localhost ~]# setenforce 0

[root@localgost~]# sed -i ‘s/SELINU=ENFORCING/SELINUX=disabled/g’ 

/etc/selinux/config

[root@localgost~]#mkdi /media/cdrom

[root@localhost~]# mount /dev/cdrm /media/cdrom

[root@localhost~]# dnf -y install vsftpd

[root@localhost~]# mkdir /var/ftp/euler

[root@localhost~]# cp -rf /media/cdrom/* /var/ftp/euler

[root@localhost~]# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES

[root@localhost~]#systemctl start vsftpd

(3)安装并启用tftp服务

  • tftp服务器由fttp-server 软件包提供,配置文件位于/etc/xinetd.d/tftp
  • 配置时只要将“disable=yes”改为“disable=no”,然后启动tftp服务即可

[root@localhost~]# dnf -y install tftp-server 

[root@localhost~]#vim /etc/xinetd.d/tftp

server  tftp

{  ......   #省略部分信息

protocol =udp      # tftp  采用udp 传输协议

server  =  /usr/sbin/in.tftpd

server_args = -s /var/lib/tftpboot     #指定tftp根目录

disable = no

...... #省略部分信息

}

[root@localhost~]# systemctl start tftp

[root@localhost~]# systemctl enable tftp

(4)准备Linux内核,初始化镜像文件

用于pxe网络安装的Linux内核,初始化镜像文件可以从Linux系统光盘获得

  • vmlinux
  • inited.img

位于文件夹images/pxeboot下,找到这两个文件并将其复制到tftp服务的根目录下

[root@localhost~]# cd /media/cdrom/images/pxeboot

[root@localhost pxeboot]#cp vmlinux initrd.img /var/lib/tftpboot

[root@localhost pxeboot]#cd /media/cdrom/isolinux/

[root@localhost isolinux]# cp ldlinux.c32 libcom32.c32 /var/lib/tftpboot/

ldlinux.c32

是syslinux引导加载程序的一部分,用于在pxe网络中引导过程中加载Linux内核和其他必要的初始化文件,提供了从网络加载内核和初始化ram文件系统所需要的基础引导功能,在pxe引导流程中,它负责处理引导菜单的配置,并根据用户的选择默认设置加载相应的内核和参数

libcom32.c32

是syslinux提供的一组常用函数的库文件,这些函数被ldlinux.c32和其他引导程序使用,包含了处理文件系统,内存分配,字符串操作等底层功能的实现,它使syslinux引导程序能够更高效的执行其任务,无需再每个引导程序中重复实现这些功能

(5)准备 PXE 引导程序

  • 用于 PXE 网络安装的引导程序为 pxelinux.0,由软件包 syslinux 提供
  • 安装好软件包 syslinux,然后将文件 pxelinux.0 也复制到 tftp 服务的根目录下

[root@localhost ~# dnf -y install syslinux

[root@localhost ~]#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

(6)安装井启用 DHCP 服务

由于 PXE客户机通常是尚未装系统的裸机,因此为了与服务器取得联系并正确下载相关引导文件,需要预先配置好 DHCP服务来自动分配地址并告知引导文件位置

如PXE服务器的IP地址为192.168.10.101,DHCP 地址池为 192.168.10.200~192.168.10.250

[root@localhost ~]# dnf -y install dhcp

[root@localhost wl# vim /etc/dhcp/dhcpd.conf

…... #省略部分信息

subnet 192.168.10.0 netmask 255.255.255.0 {

option routers 192.168.10.254;

option subnet mask 255.255.255.0;

option domain-name "bdqn.com";

option domain-name-servers 192.168.10.254,202.106.0.20;

default-lease-time 21600;

max-lease-time 43200;

range 192.168.10.200 192.168.10.250;

next-server 192.168.10.101;               #指定 TFTP 服务器的地址

filename "pxelinux.0";                        #指定 PXE 引导程序的文件名

}

[root@localhost wl# systemctl start dhcpd

[root@localhost w]# systemctl enable dhcpd

Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to/usr/lib/systemd/system/dhcpd.service.

区别

与一般 DHCP服务不同的是,配置文件中增加了next-server 和filename这两行记录,分别用来指定TFTP服务器的地址和PXE引导程序的文件名

(7)配置启动菜单文件

  • 启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像
  • 默认的启动菜单文件为 default,应放置在 tftp 根目录的 pxelinux.cfg 子目录下

典型的启动菜单配置可参考以下操作手动建立:

[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg

[root@localhost ~l# vim /var/lib/tftpboot/pxelinux.cfg/default

default auto

prompt 1

label auto

kernel vmlinuz

append initrd=initrd.img inst.repo=ftp://192.168.10.101/euler

2.验证 PXE 网络安装

  • 对于新购买的服务器或 PC 裸机,一般不需要额外设置;
  • 若要为已有系统的主机重装系统,则可能需要修改 BIOS 设置,将“Boot First’设为“NETWORK”或“LAN”,然后重启主机;
  • 若使用 vmware 创建的虚拟机进行测试,虚拟机内存至少需要 2GB,否则在启动安装时会报错:

如果服务器配置正确,网络连接、PXE支持等都没有问题,则客户机重启后将自动配置IP地址,然后从 TFTP 服务器中获取引导程序 pxelinux.0,并根据引导菜单配置提示用户指定启动入口

Network boot from Intel E1888

Copyright()2083-2014 UMware,Inc.

Copyright)1997-2889Intel corporation

CLIENT MAC ADDR:8O BC 29F7A69 GUID:564D280B50B8-8260-4283-1F2AEAF7A689

CLIENT IP: 192.168.4.103 MASK:255 255.255.8 DHCP IP: 192.168.4.254

GATEWAY IP:192.168.4.254

PXELINUx 4.85 8x581e199aCopyright()1994-2011H.Peter Anvinet al

PXE entry point found(we hope)at 9E4E:0186 via plan A

UNDI code segment at 9E4E len BCE

UNDl data segment at 98B8 len 5968Getting cached packet 81 82 03

My IP address seems to be CA80467 192.168.4.103

ip=192,168.4.103:192.168.4.254:192.168.4.254:255.255.255.0

B00TIF=01-80-0c-29-f7-a6-09

SYSUUID=564d288b-5db8-826c-4203-1f2aeaf7a689

TFTP prefix:

Trying to load:pxelinux.cfg/default                        ok

boot : _

在boot下执行如下命令:

auto:进入默认的图形安装入口

linux text:  进入文本安装入口

linux rescue:  进入救援模式

直接按 Enter 键确认后将自动通过网络下载安装文件,并进入图形安装程序界面

b.实现Kickstart 无人值守安装


  • 通过 PXE技术远程安装Linux 系统的方法,安装介质不再受限于光盘、移动硬盘等设备,大大提高了系统安装的灵活性
  • 然而,安装期间仍需要手动选择语言、键盘类型、指定安装源等一系列交互操作,当需要批量安装时非常不方便
  • 如何实现无人值守自动安装,通过使用安装应答文件,自动完成安装过程中的各种设置,从而无须手动干预,提高网络装机效率

注意:

在 openeuler24.03或centos8等系统版本中,不再支持 system-config-kickstart 工具,无法通过此工具生成应答文件,需要直接编辑ks.cfg文件

1)编辑应答文件

[root@localhost ~]# grep -v ^# /root/ks.cfg

ur1 --url="ftp://192.168.10.101/euler"

#系统语言设置

lang zh_CN.UTF-8

keyboard us

# 网络配置(以 DHCP 为例)

--activate--bootproto=dhcp --device=eth0network

#安全策略

--enableshadow--passalgo-sha512authselect

selinux --enforcing

rootpw --iscrypted $y$j9T$QqwtZ/njxxUpfvofVbMCa99t$46WHHCdZ1EXPI8G8Ms9rE20InyokuLkxzyrg4nbws98

#时区设置

timezone Asia/Shanghai

#分区方案(自动分区示例)

autopart --type=lvm --fstype=ext4

bootloader --location=mbr

#清除旧系统并初始化磁盘

clearpart --all--initlabel

#软件包选择

%packages --nocore

@^minimal-environment

kernel

grub2

efibootmgn

%end

#后安装脚本

%post

#关闭防火墙(根据实际需求选择)

systemctl disable firewalld

#配置 SSH 允许 root 登录(按需启用)

# sed -i 's/^#PermitRootLogin.*/PermitRootLogin yes/'/etc/ssh/sshd config

%end

# 重启配置

reboot

2)实现批量自动装机

有了自动安装的应答文件之后,只要将其放置 PXE 安装服务器的 FTP 目录下,并适当修改引导菜单,就可以实现基于网络的批量自动装机了

1.启用自动应答文件

  • 在PXE 远程安装服务器中,将建立的应答文件复制到/var/ftp/Linux 目录下,使客户机能够通过 ftp:#192.168.4.254/Linux/ks.cfg 访问;
  • 然后编辑引导菜单文件 default,添加 ks 引导参数以指定 ks.cfg 应答文件的 URL 路径

[root@localhost ~]# cp /root/ks.cfg /var/ftp/ks.cfg

[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default

default auto

prompt 0

label  auto

kernel vmlinuz

append initrd=initrd.img inst.ks=ftp://192 168 10.101/ks.cfg inst.repo=ftp://192.168.10.101/euler

2.验证无人值守安装

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

注意:

如果是在 VMware 虚拟机环境下,需要禁用VMware的DHCP 功能;否则安装文件将无法加载

举报

相关推荐

0 条评论