部署PXE远程安装服务

 PXE(Preboot eXecution Environment,预启动执行环境)技术的网络装机方法,并结合 Kickstart 配置实现无人值守自动安装。

上述服务器的批量部署方法,具备以下三个优点:

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

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

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

PXE 是由 Intel 公司开发的网络引导技术,工作在 CientServer 模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。若要搭建 PXE网络体系,必须满足以下几个前提条件。

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

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

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

搭建PXE远程安装服务器

(1)构建vsftpd服务,并部署centos 7安装源

[root@localhost ~]# vi /etc/yum.repos.d/centos7.repo

[developmnt]

name=Red Hat Enterprise Linux

baseurl=file:///media/cdrom/

enabled=1

gpgcheck=0


[root@localhost ~]# systemctl stop firewalld

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

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

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

[root@localhost ~]# systemctl start vsftpd

Yum配置文件的id部分必须设置为[development],否则在kickstart中找不到软件包信息.

(2)构建TFTP服务,并准备好引导程序,引导菜单,linux内核,初始化镜像

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

{

…… //省略部分信息

        disable                 = no

…… //省略部分信息

}

用于 PXE 网络安装的 Linux 内核、初始化镜像文件可以从 CentOS7系统光盘获得,分别为 vmlinuz 和 initrd.img,位于文件夹 images/pxeboot下。找到这两个文件并将其复制到 tftp 服务的根目录下“/var/lib/tftpboot”

[root@localhost ~]# systemctl start tftp

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

[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/  \\拷贝内核和镜像

TRANS.TBL:文件名转换表文件,在制作ISO映像文件时在每个目录中生成的文件,记录每个目录中所包含的文件名。

initrd是“initial ramdisk”的简写。initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。initrd-2.4.7-10.img主要是用于加载文件系统及scsi设备的驱动。

(3)准备PXE引导程序

用于 PXE 网络安装的引导程序为 pxelinux.0,由软件包 syslinux 提供。安装好软件包syslinux,然后将文件 pxelinux.0 也复制到 tftp 服务的根目录下。默认的启动菜单文件为 default,应放置在 tftp 根目录的 pxelinux.cfg 子目录下,典型的启动菜单配置可参考以下操作手动建立。

[root@localhost ~]# yum -y install syslinux      \\安装pxe程序

[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/    \\拷贝引导程序pxelinux.0

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

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

default auto

prompt 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

上述配置记录中定义了三个引导入口,分别为图形安装(默认)、文本安装、救援模式。其中,prompt用来设置是否等待用户选择:label用来定义并分隔启动项;kernel和 append用来定义引导参数。引导入口的个数及内容根据需要自行定义。例如,实现无人值守安装时只需要一个入口就够了。

(4)构建DHCP服务,以便为192.168.10.0/24网段分配地址,并设置TFTP参数

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

[root@localhost ~]# vi /etc/dhcp/dhcpd.conf

subnet 192.168.10.0 netmask 255.255.255.0 {

 range 192.168.10.200 192.168.10.250;

next-server 192.168.10.101;

filename "pxelinux.0";

}

[root@localhost ~]# systemctl start dhcpd

(5)验证PXE网络安装

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

PXE高效网络批量装机_linux

在提示字串“boot:"后直接按 Enter 键(或执行"auto"命令),将会进入默认的图形安装入口;若执行“linux text"命令,则进入文本安装入口;若执行“linuxrescue”命令,则进入救援模式。直接按 Enter 键确认后将自动通过网络下载安装文件,并进入图形安装程序界面。

PXE高效网络批量装机_centos_02

实现Kickstart无人值守安装

(1)准备安装应答文件

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

[root@localhost ~]# yum -y install system-config-kickstart

(2)运行kickstart配置程序,按实验要求创建ks.cfg应答文件。

在图形桌面环境中,按Alt+F2组合键后输入system-config-kickstart并点运行,或者打开桌面菜单“应用程序”→“系统工具”→“kickstart”。

PXE高效网络批量装机_linux_03

PXE高效网络批量装机_linux_04

PXE高效网络批量装机_linux_05

PXE高效网络批量装机_linux_06

PXE高效网络批量装机_linux_07

注意:

如果此处看不到软件包列表,需要将yum源配置文件中括号中的内容改为development

图形化界面配置后保存,文件名用默认的ks.cfg。

(3)将应答文件复制到centos7安装源所在的FTP目录下。

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

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

##添加红色部分,其余的删掉

default auto

prompt 0

label auto

  kernel vmlinuz

  append ks=ftp://192.168.10.101/ks.cfginitrd=initrd.img method=ftp://192.168.10.101/centos7

(4)、验证PXE网络装机

(1)将1台裸机连接到PXE服务器所在网络,并确认能够通过网络引导。

(2)打开裸机的电源,确认引导成功并自动安装好centos7系统。

(3)新建虚拟机是内存大于2G,磁盘调的大一点,给个60G以上。