1、部署PXE远程安装服务
在大规模的Linux应用环境中(如Web集群、分布式计算等),服务器往往并不配装备光驱设备。
在这种情况下,传统的USB光驱、移动硬盘等安装方法显然已经难以满足需求。
那么如何为数十台服务器裸机快速安装系统呢?
基于PXE技术的网络装机方法,并结合Kickstart配置实现无人值守就可以解决这个问题。
PXE——预置安装环境
这样的服务器批量部署方法具备以下三个优点:
- 规模化(可同时装配多台服务器)
- 自动化(安装系统、配置各种服务)
- 远程实现(不需要光盘、U盘等安装介质)
注:PXE工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。
补充:要搭建PXE网络体系,必须满足的条件有:
- 客户机的网卡支持PXE协议,且主板支持网络引导;(硬件要求)
- 网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件的位置;
- 服务器通过TFTP(简单文件传输协议)提供引导镜像文件的下载
在上述条件中,第一个条件是硬件要求,目前绝大多数服务器和大多数PC都能提供此支持,
只需要在BIOS设置中允许从Network或LAN启动即可。
补充: 要想实现PXE远程装机,需要的环境有:
- iso系统镜像(所需的操作系统——里面有系统的一些数据文件,包括常见的软件包等)
- FTP
系统镜像放在PXE服务器的FTP里面,即把iso操作系统文件放在FTP相应的目录下,这样一来,远程的服务器就可以找到PXE里面的远程的系统文件了。
利用FTP去下载保存到PXE服务器上得操作系统得各种文件。
- pxe服务器上的DHCP服务。当一个服务器还没有操作系统的时候,这个服务器是没有IP地址的,
注:那没有IP地址怎么去FTP里面找东西呢?
这里DHCP的作用是,在服务器还没有操作系统的时候,就直接给服务器的网卡分配一个IP地址。
上面这个过程走了一个协议(rarp协议——反向地址解析)
正常的地址解析是:通过IP地址获取你的MAC地址,
反向地址解析是:已知MAC地址(广播的方式),来获取IP地址。
- TFTP(简单文件传输协议),它的工作机制比FTP要更精简,它不需要繁杂的配置,只需要把它安装出来就可以使用
注:TFTP里面要放置的文件有:
内核文件、初始化镜像文件、引导程序、与引导有关的配置文件
所以说,远程的客户端启动的时候要先利用DHCP获取到对应得IP地址,然后就可以去找TFTP把初始化镜像文件、内核文件拿到手,再借助引导程序和引导配置文件去启动安装的进程。只要启动起来了,就可以正常地安装你的操纵系统了。
1.1 搭建PXE远程安装服务器
(1)准备Centos7安装源
Centos7的网络安装源通过HTTP、FTP、NFS协议发布。
若采用FTP协议发布安装源,可以在服务器上部署一个YUM软件仓库:
(2)安装并启用TFTP服务
TFTP服务是由tftp-sever软件包提供的,配置文件位于/etc/xinetd.d/tftp。
配置的时候只需要将disable=yes改为disable=no,然后启动TFTP服务即可。如下图:
(3)准备Linux内核、初始化镜像文件
用于PXE网络安装的Linux内核、初始化镜像文件可以从Centos7系统光盘获得,分别为vmlinuz
和initrd.img,它们位于文件夹images/pxeboot下。
找到上述的两个文件并将其复制到tftp服务的根目录下。如下图:
(4)准备PXE引导程序
用于PXE网络安装的引导程序为pxelinux.0,是由软件包syslinux提供的。
先安装好软件包syslinux,然后将文件pxelinux.0也复制到tftp服务的根目录下。如下图:
(5)安装并启用DHCP服务
由于PXE客户机通常是尚未装系统的裸机,因此为了与服务器取得联系并正确下载相关引导文件,需要预先配置好DHCP服务来自动分配地址并告知引导文件的位置。
例如,PXE服务器的IP地址为192.168.4.254,DHCP地址池为192.168.4.100~192.168.4.200。可以参考下图来搭建DHCP服务器:
注:从上述过程中可以看到,与一般DHCP服务不同的是,配置文件中增加了netx-server(用来指定TFTP服务器的地址)和filename(PXE引导程序的文件名)这两行记录。
(6)配置启动菜单文件
启动菜单文件用来指导客户机的引导过程,包括如何调用内核、如何加载初始化镜像。
注:默认的启动菜单文件为default,放置在tftp根目录的pxelinux.cfg子目录下。可以参考下图手动建立启动菜单:
上述配置记录中,定义了三个引导入口,分别为图形安装(默认)、文本安装、救援模式。
其中,prompt用来设置是否等待用户选择。
label——用来定义并分隔启动项 kernel和append用来定义引导参数
注:引导入口的个数及内容根据需要自行定义。例如,实现无人值守时,只需要一个入口就够了。
1.2、验证PXE网络安装
搭建好PXE远程安装服务器之后,就可以用客户机进行安装测试了。
如果服务器配置正确,网络连接、PXE支持等都没有问题,则客户机重启后将自动配置IP地址,
然后从TFTP服务器中获取引导程序pxelinux0,并根据引导菜单配置提示用户指定启动入口。如下图:
注:如果在提示字串boot:后直接按Enter键,将会进入默认的图形安装入口;
若执行linux text命令,则进入文本安装入口;
若执行linux rescue命令,则进入救援模式。
2、实现Kickstart无人值守安装
2.1 准备安装应答文件
在Centos7系统中安装system-config-kickstart工具之后,即可通过图形化向导工具来配置安装应答文件。
2.2 配置安装应答参数
通过桌面菜单应用程序”→“系统工具”→“Kickstart”即可打开“Kickstart 配置程序”窗口。
在配置窗口中,可以根据需要针对基本配置、安装方法、引导装载程序选项、分区信
息、网络配置等各种安装设置进行指定,如下图:
2.3 保存自动应答文件
选择“Kickstart 配置程序”窗口的“文件”→“保存”命令,指定目标文件夹、文件名,将配
置好的应答参数保存为文本文件,如/root/ks.cfg。
以后若要修改此应答配置,可以在
“Kickstart 配置程序”窗口中打开进行调整,或者直接用 VI 等文本编辑工具进行修改。
3、实现批量自动装机
有了自动安装的应答文件之后,只要将其放置 PXE 安装服务器的 FTP 目录下,并适当
修改引导菜单,就可以实现基于网络的批量自动装机了。
3.1 启动自动应答文件
在 PXE 远程安装服务器中,将上面建立的应答文件复制到/var/ftp/centos7 目录下,
使客户机能够通过 ftp://192.168.4.254/centos7/ks.cfg 访问;然后编辑引导菜单文件 default,
添加 ks 引导参数以指定 ks.cfg 应答文件的 URL 路径。
3.2 验证无人值守安装
启用自动应答安装之后,当客户机每次以 PXE 方式引导时,将自动下载 ks.cfg 应答配
置文件,然后根据其中的设置安装 CentOS 7 系统,而无须手工干预,这样就可以同时为多台客户机安装系统了。如下图所示: