PXE高效批量装机

一.部署PXE与远程安装服务介绍

使用该服务可以实现大量服务器裸机批量快速安装系统。

使用该方法的优点:

  • 规模化:同时装配多台服务器;
  • 自动化:安装系统,配置各种服务;
  • 远程实现:不需要光盘,U盘等安装介质

搭建PXE网络体系,必须满足以下条件:

  1. 客户机的网卡支持PXE协议(集成BOOTROM芯片),且主板支持网络引导
  2. 网络中有一台DHCP服务器以便客户机自动分配地址,指定引导文件位置。
  3. 服务器通过TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载

其中,第一个条件实际上是硬件要求,大多服务器和PC端能够提供次支持,只需要在BIOS设置中允许从Network或LAN启动即可。

二.基本部署过程

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

1.准备CentOS7安装资源

        CentOS7的网络安装资源一般通过HTTP,FTP协议公布,另外支持NFS协议获取其他服务器目录文件,(具体内容可以查看前两期内容,这里不在赘述)
        使用FTP协议,在局域网内部部署一个YUM软件仓库。
[root@localhost ~]# yum -y install vsftpd                    //安装vsftpd软件包
[root@localhost ~]# mkdir /var/ftp/centos7                   //在ftp的存储目录下创建一个放置YUM软件仓库的目录
[root@localhost ~]# cp -rf /media/cdrom/* /var/ftp/centos7   //将YUM仓库放置该目录下
[root@localhost ~]# systemctl start vsftpd                   //启动vsftpd服务

2.安装并启动TFTP服务 

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

[root@localhost ~]# yum -y install tftp-server
[root@localhost ~]# vim /etc/xinetd.d/tftp 
        protocol                = udp                     //TFTP 采用 UDP 传输协议
        disable                 = no
        server_args             = -s /var/lib/tftpboot    //指定 TFTP 根目录
[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。位于/image/expboot下,找到这两个文件将其复制到tftp服务的根目录下

[root@localhost ~]# cd /media/cdrom/images/pxeboot/                         
[root@localhost pxeboot]# ls
initrd.img  TRANS.TBL  vmlinuz
[root@localhost pxeboot]# cp -rf initrd.img vmlinuz /var/lib/tftpboot/  //将初始化镜像文件和内核拷贝到tftp根目录下

4.准备PXE引导程序

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

[root@localhost pxeboot]# yum -y install syslinux   //安装syslinux用于提供引导文件pxelinux.0
[root@localhost pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/   //将引导程序也放到tftp的根目录下

5.安装并启动DHCP服务

        由于 PXE 客户机通常是尚未装系统的裸机,因此为了与服务器取得联系并正确下载相关引导文件,需要预先配置好 DHCP 服务来自动分配地址并告知引导文件位置。如 PXE 服务器的IP地址为 192.168.10.101.,DHCP地址池为 192.168.10.100~192.168.10.200,则可以参考以下操作来搭建 DHCP 服务器。

[root@localhost pxeboot]# yum -y install dhcp
[root@localhost pxeboot]# vim /etc/dhcp/dhcpd.conf 
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.100 192.168.10.200;                //可以分配的IP地址空间
next-server 192.168.10.101;                         //指定 TFTP 服务器的地址
filename "pxelinux.0";                              //指定 PXE 引导程序的文件名      
} 
[root@localhost pxeboot]# systemctl start dhcpd
[root@localhost pxeboot]# systemctl enable dhcpd
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to
/usr/lib/systemd/system/dhcpd.service.

6.配置启动菜单文件

        启动菜单用来知道客户机的引导过程,包括如何调用内核,如何加载初始镜像文件,默认的启动菜单文件为default,应放在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.10.101/centos7
#文本安装
label linux text
        kernel vmlinuz
        append text initrd=initrd.img method=ftp://192.168.10.101/centos7
#急救模式
label linux rescue
        kernel vmlinuz
        append rescue initrd=initrd.img method=ftp://192.168.10.101/centos7
kernel 和 append用来定义引导参数。引导入口的个数及内容根据需要自行定义。例如,实现无人值守安装时只需要一个入口就够了。

 三.验证PXE网络安装

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

         在提示字串“boot:”后直接按 Enter 键(或执行“auto”命令),将会进入默认的图形安装入 口;若执行“linux text”命令,则进入文本安装入口;若执行“linux rescue”命令,则进入救援 模式。
        直接按 Enter 键确认后将自动通过网络下载安装文件,并进入图形安装程序界面,如图所示。若能够成功到达这一步,说明 PXE 网络安装基本成功。后续安装步骤与使用光 盘的正常安装类似,这里不再叙述。

 

四.实现Kickstart无人值守安装

        上面介绍了通过 PXE 技术远程安装 CentOS 7 系统的方法,安装介质不再受限于光 盘、移动硬等设备,大大提高了系统安装的灵活性。然而,安装期间仍需要手动选择语言、 键盘类型、指定装源等一系列交互操作,当需要批量安装时非常不方便。

        如何实现无人值守自动安装,通过使用 Kickstart 工具配置安装应答 文件,自动完成安装过程中的各种设置,从而无须手动干预,提高网络装机效率。

1.准备应答文件

         在 CentOS 7 系统中安装 system-config-kickstart 工具之后,即可通过图形化向导工具来配置安装应答文件。如果用户对自动应答文件的配置比较熟悉,也可以直接编辑 CentOS 7 安装后自动创建的应答文件(/root/anaconda-ks.cfg),根据需要适当修订后使用。

        通过桌面菜单“应用程序”→“系统工具”→“Kickstart”即可打开“Kickstart 配置程序”窗口。 在“Kickstart 配置程序”窗口中,可以针对基本配置、安装方法、引导装载程序选项、分区信息、网络配置等各种安装设置进行指定,在VMware带有桌面的虚拟机中可以使用system-config-kickstart开启窗口。

2.保存应答文件

        选择“Kickstart 配置程序”窗口的“文件”→“保存”命令,指定目标文件夹、文件名,将配置好的应答参数保存为文本文件,并放到/var/ftp/下。以后若要修改此应答配置,可以在“Kickstart 配置程序”窗口中打开进行调整,或者直接用 VI 等文本编辑工具进行修改。

3.启动自动应答文件

        修改/var/lib/tftpboot/pxelimux.cfg/default 来启动自动应答文件

default auto
prompt 0                                             //0 表示不等待用户控制
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.4.254/centos7
ks=ftp://192.168.4.254/ks.cfg

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值