PXE高效批量网络装机

一:部署 PXE 远程安装服务

在大规模的 Linux 应用环境中,如 Web 群集、分布式计算等,服务器往往并不配备光
驱设备,在这种情况下,如何为数十乃至上百台服务器裸机快速安装系统呢?传统的 USB
光驱、移动硬盘等安装方法显然已经难以满足需求。
上述服务器的批量部署方法,具备以下三个优点:
规模化:同时装配多台服务器;
自动化:安装系统、配置各种服务;
远程实现:不需要光盘、 U 盘等安装介质。
PXE 是由 Intel 公司开发的网络引导技术,工作在 Client/Server 模式,允许客户机通过
网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。若要搭建 PXE 网络
体系,必须满足以下几个前提条件。
客户机的网卡支持 PXE 协议(集成 BOOTROM 芯片),且主板支持网络引导。
网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置。
服务器通过 TFTP Trivial File Transfer Protocol ,简单文件传输协议)提供引导
镜像文件的下载。
其中,第一个条件实际上是硬件要求,目前绝大多数服务器和大多数 PC 都能够提供此
支持,只需在 BIOS 设置中允许从 Network LAN 启动即可。下面将介绍 PXE 远程安装服
务的基本部署过程。

1:搭建 PXE 远程安装服务器

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

1:准备 CentOS 7 安装源

CentOS 7 的网络安装源一般通过 HTTP FTP 协议发布,另外也支持 NFS Network
File System ,网络文件系统)协议,关于 NFS 的配置请参阅其他资料,这里不再赘述。
例如,若采用 FTP 协议发布安装源,可以在服务器上部署一个 YUM 软件仓库。
[root@localhost ~]# mkdir /var/ftp/centos7
[root@localhost ~]# cp -rf /media/cdrom/* /var/ftp/centos7/
[root@localhost ~]# systemctl start vsftpd

2:安装并启用 TFTP 服务
TFTP 服务由 tftp-server 软件包提供,配置文件位于 /etc/xinetd.d/tftp 。配置时只要将
“disable = yes” 改为 “disable = no” ,然后启动 TFTP 服务即可。
[root@localhost ~]# yum -y install tftp-server
[root@localhost ~]# vi /etc/xinetd.d/tftp
service 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
Created         symlink         from         /etc/systemd/system/sockets.target.wants/tftp.socket         to
/usr/lib/systemd/system/tftp.socket.

3:准备 Linux 内核、初始化镜像文件

用于 PXE 网络安装的 Linux 内核、初始化镜像文件可以从 CentOS 7 系统光盘获得,
分别为 vmlinuz initrd.img ,位于文件夹 images/pxeboot 下。找到这两个文件并将其复制
tftp 服务的根目录下。
[root@localhost ~]# cd /media/cdrom/images/pxeboot
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot

4:准备 PXE 引导程序

用于 PXE 网络安装的引导程序为 pxelinux.0 ,由软件包 syslinux 提供。安装好软件包
syslinux ,然后将文件 pxelinux.0 也复制到 tftp 服务的根目录下。
[root@localhost ~]# yum -y install syslinux
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

5:安装并启用 DHCP 服务

由于 PXE 客户机通常是尚未装系统的裸机,因此为了与服务器取得联系并正确下载相
关引导文件,需要预先配置好 DHCP 服务来自动分配地址并告知引导文件位置。如 PXE
务器的 IP 地址为 192.168.4.254 DHCP 地址池为 192.168.4.100 192.168.4.200 ,则可
以参考以下操作来
搭建 DHCP 服务器。
[root@localhost ~]# yum -y install dhcp
[root@localhost ~]# vi /etc/dhcp/dhcpd.conf
……
//省略部分信息
subnet 192.168.4.0 netmask 255.255.255.0 {
        option routers 192.168.4.254;
        option subnet-mask 255.255.255.0;
        option domain-name "bdqn.com";
        option domain-name-servers 192.168.4.254,202.106.0.20;
        default-lease-time 21600;
        max-lease-time 43200;
        range 192.168.4.100 192.168.4.200;
        next-server 192.168.4.254;                 //指定 TFTP 服务器的地址
        filename "pxelinux.0";                         //指定 PXE 引导程序的文件名
}
[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# systemctl enable dhcpd
Created    symlink     from      /etc/systemd/system/multiuser.target.wants/dhcpd.service    to
/usr/lib/systemd/system/dhcpd.service.
从上述过程可以看到,与一般 DHCP 服务不同的是,配置文件中增加了 netx-server
filename 这两行记录,分别用来指定 TFTP 服务器的地址和 PXE 引导程序的文件名。

6:配置启动菜单文件

启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像。默认
的启动菜单文件为 default ,应放置在 tftp 根目录的 pxelinux.cfg 子目录下,典型的启动菜单
配置可参考以下操作手动建立。
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
default auto                             //指定默认入口名称
prompt 1                                 //1 表示等待用户控制
label auto
    kernel vmlinuz
    append initrd=initrd.img method=ftp://192.168.4.254/centos7
label linux text
    kernel vmlinuz
    append text initrd=initrd.img method=ftp://192.168.4.254/centos7
    
label linux rescue
    kernel vmlinuz
    append rescue initrd=initrd.img method=ftp://192.168.4.254/centos7
上述配置记录中定义了三个引导入口,分别为图形安装(默认)、文本安装、救援模式。
其中, prompt 用来设置是否等待用户选择;
label 用来定义并分隔启动项; kernel append
用来定义引导参数。引导入口的个数及内容根据需要自行定义。例如,实现无人值守安装时
只需要一个入口就够了。

2:验证 PXE 网络安装

搭建好 PXE 远程安装服务器以后,就可以使用客户机进行安装测试了。对于新购买的
服务器或 PC 裸机,一般不需要额外设置;若要为已有系统的主机重装系统,则可能需要修
BIOS 设置,将 “Boot First” 设为 “NETWORK” “LAN” ,然后重启主机;若使用 VMware
创建的虚拟机进行测试,虚拟机内存至少需要 2GB ,否则在启动安装时会报错。
如果服务器配置正确,网络连接、 PXE 支持等都没有问题,则客户机重启后将自动配
IP 地址,然后从 TFTP 服务器中获取引导程序 pxelinux.0 ,并根据引导菜单配置提示用
户指定启动入口。

  • 25
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值