PXE( Preboot eXecute Environment,预启动执行环境)是由 Intel 公司开发的技术,可以让计算机通过网络来启动操作系统(前提是计算机上安装的网卡支持 PXE 技术),主要用于在无人值守安装系统中引导客户端主机安装 Linux 操作系统。 Kickstart 是一种无人值守的安装方式,其工作原理是预先把原本需要手工填写的参数保存成一个ks.cfg 文件,当安装过程中需要填写参数时则自动匹配 Kickstart 生成的文件。
使用 PXE + TFTP +FTP + DHCP + Kickstart 服务搭建出一个无人值守安装系统。这种无人值守安装系统可以自动地为数十台服务器安装系统,将大大提升了系统安装的效率。这里强调一下一定要设置好网段,在做这个实验的时候,因为网段问题耽误了一会儿时间。
实验系统:Redhat7.0
实验环境:vmware12
一、配置 DHCP 服务程序
DHCP 服务程序用于为客户端主机分配可用的 IP 地址,而且这是服务器与客户端主机进行文件传输的基础,因此我们先行配置 DHCP 服务程序。
关闭虚拟机自带的 DHCP 服务
安装 DHCP 服务程序软件包
vim /etc/dhcp/dhcpd.conf修改DHCP配置文件,允许 BOOTP 引导程序协议,旨在让局域网内暂时没有操作系统的主机也能获取静态 IP地址;在配置文件的最下面加载了引导驱动文件 pxelinux.0(这个文件会在下面的步骤中创建),其目的是让客户端主机获取到 IP 地址后主动获取引导驱动文件,自行进入下一步的安装过程。
DHCP 服务程序的参数都填写正确后,重新启动该服务程序,并将其添加到开机启动项中。这样在设备下一次重启之后,在无须人工干预的情况下,自动为客户端主机安装系统。
配置 TFTP 服务程序
配置 TFTP 服务程序,为客户端主机提供引导及驱动文件。当客户端主机有了基本的驱动程序之后,再通过 vsftpd 服务程序将完整的光盘镜像文件传输过去。
TFTP 是一种非常精简的文件传输服务程序,它的运行和关闭是由 xinetd 网络守护进程服务来管理的。 xinetd 服务程序会同时监听系统的多个端口,然后根据用户请求的端口号调取相应的服务程序来响应用户 的请求。需要开启 TFTP 服务程序,只需在 xinetd 服务程序的配置文件中把 disable 参数改成 no 就可以了。
TFTP 服务程序默认使用的是 UDP 协议,占用的端口号为 69,所以在生产环境中还需要在 firewalld 防火墙管理工具中写入使其永久生效的允许策略,以便让客户端主机顺利获取到引导文件。
二、配置 SYSLinux 服务程序
SYSLinux 是一个用于提供引导加载的服务程序。与其说 SYSLinux 是一个服务程序,不如说更需要里面的引导文件,在安装好 SYSLinux 服务程序软件包后, /usr/share/syslinux 目录中会出现很多引导文件。
把 SYSLinux 提供的引导文件复制到 TFTP 服务程序的默认目录中,也就是文件 pxelinux.0,这样客户端主机就能够顺利地获取到引导文件了。另外在 RHEL7 系统光盘镜像中也有一些我们需要调取的引导文件。确认光盘镜像已经被挂载到/media/cdrom 目录后,使用复制命令将光盘镜像中自带的一些引导文件也复制到 TFTP 服务程序的默认目录中。
TFTP 服务程序的目录中新建 pxelinux.cfg 目录,虽然该目录的名字带有后缀,但依然也是目录,而非文件!将系统光盘中的开机选项菜单复制到该目录中,并命名为 default。这个 default 文件就是开机时的选项菜单。
编辑这个 default 文件,把第 1 行的 default 参数修改为 linux,这样系统在开机时就会默认执行那个名称为 linux 的选项了。对应的 linux 选项大约在 64 行,我们将默认的光盘镜像安装方式修改成 FTP 文件传输方式,并指定好光盘镜像的获取网址以及 Kickstart 应答文件的获取路径。
三、配置 vsftpd 服务程序
本套无人值守安装系统的服务中,光盘镜像是通过 FTP 协议传输的,因此要用到 vsftpd 服务程序。
将相应的服务程序添加到开机启动项中
光盘镜像已经正常挂载到/mnt/cdrom 目录后,把目录中的光盘镜像文件全部复制到 vsftpd 服务程序的工作目录中。
四、创建 KickStart 应答文件
Kickstart 应答文件中包含了系统安装过程中需要使用的选项和参数信息,系统可以自动调取这个应答文件的内容,从而彻底实现了无人值守安装系统。在 root 管理员的家目录中有一个名为 anacondaks.cfg 的文件,它就是应答文件。下面将这个文件复制到 vsftpd 服务程序的工作目录中(在开机选项菜单的配置文件中已经定义了该文件的获取路径,也就是 vsftpd 服务程序数据目录中的 pub 子目录中)。使用 chmod 命令设置该文件的权限,确保所有人都有可读的权限,以保证客户端主机可以顺利获取到应答文件及里面的内容。
Kickstart 应答文件中首先把第 6 行的光盘镜像安装方式修改成 FTP 协议,仔细填写好 FTP 服务器的 IP 地址,并用本地浏览器尝试打开下检查有没有报错。然后把第 21 行的时区修改成上海(Asia/Shanghai),最后再把 28 行的磁盘选项设置为清空所有磁盘内容并初始化磁盘。
五、验证服务
部署各个相关的服务程序后,就可以使用 PXE + Kickstart 无人值守安装系统了。在采用下面的步骤建立虚拟主机时,一定要把客户端的网卡模式设定成与服务端一致,否则两台设备无法进行通信。
新建虚拟机进行验证
选择稍后安装
选择Linux发行版本
给虚拟机命名,指定文件位置
划分磁盘大小
选择自定义硬件,修改网卡模式与服务端保持一致
打开虚拟机,开始传输光盘镜像文件并进行自动安装了—期间完全无须人工干预。
安装完毕后需要进行初始化工作。