用Kickstart自动装系统
2016-11-26
引言:基于Kickstart的网络自动化安装技术,能够有效地减少大规模安装Linux操作系统的工作量,提高维护工作效率。虽然该技术比较成熟,在网上有较多的配置实例,但往往都只是重视配置本身,而忽略对技术原理的分析,初学者不易理解。本文主要对该安装技术的运行原理和步骤进行介绍,希望能够帮助初学者理解和学习该方法。
自动安装需求
笔者单位机房需要安装大量的服务器,这些服务器要求安装Linux操作系统。如果采用人工安装的方式来安装操作系统,除了需要准备光驱、光盘或U盘等安装介质外,还要花费大量的时间进行安装,而其中基本都是重复的工作内容。在机房网络环境中,针对大批量同一安装要求的服务器,相比人工安装方式而言,采用无人值守的网络自动化安装方式无疑是更为便利和有效的。
基于Kickstart的网络自动化安装技术,技术架构主要使用了PXE网络技术和Kickstart的技术。原理是客户端通过PXE网络技术从安装服务器中自动获取IP地址、下载映像、加载操作系统,再根据事先设计的Kickstart配置文件参数完成系统安装,实现Linux操作系统的无人值守安装。同时,由于该技术采用Client/Server网络架构模式,所以可以实现同时大批量安装。
基于Kickstart的网络自动化安装技术,是比较成熟的技术,在网上有较多的配置实例,有详细的配置步骤,但对原理的介绍却并不详细。本文并不列举实际配置,而是主要针对该安装技术架构的运行原理和步骤进行详细分析和介绍。
Kickstart自动安装原理
Kickstart是RedHat公司开发的一种无人值守安装方式,工作原理是将安装过程所需要的信息事先记录在Kickstart的配置文件ks.cfg中,然后可使用硬盘、光盘、网络等多种方式进行安装。在安装过程中,当遇到要求填写参数的情况,安装程序会查找ks.cfg文件,从中查询安装参数。由于所有安装信息均已在ks.cfg中事先设置,所以安装时系统不需要人工干预,直到安装完成为止。
Kickstart网络安装,可选择使用NFS、FTP或HTTP三种方式之一进行安装。NFS、FTP和HTTP服务器中存放系统安装文件(本文用HTTP服务器为例进行分析)。
PXE协议
PXE(Preboot Execute Environment预启动执行环境)是由Intel公司设计的一个网络协议,工作于Client/Server的网络模式,它可以使计算机通过网络启动,引导系统网络化安装。协议分为Client和Server两端,PXE Client在网卡的ROM当中,当待安装系统的计算机开机引导时,BIOS把PXE Client调入内存中执行,PXE Client会在自检后,以广播的形式发送一个请求,DHCP服务器在收到请求后会进行回应,给客户端分配IP地址,并指示TFTP服务器的IP地址。客户端在获取IP地址后,从TFTP服务器中下载开机引导文件“pxelinux.0”到本地内存运行,开机引导程序通过TFTP读取配置文件Pxelinux.cfg,获取系统初始化的相关文件信息,在内存中进行系统内核和文件系统的加载,随后可开始Linux系统安装。配合Kickstart技术,可完成Linux系统的完全无人值守安装。
Kickstart网络自动化安装技术架构
使用Kickstart网络自动化安装技术,PXE客户机(即需要安装Linux系统的客户机)应该与DHCP服务器、TFTP服务器和HTTP服务器都处在同一局域网网段中。在实际应用中,这三台服务器可以都安装在同一台主机上,该主机作为“安装服务器”使用,其中的各项服务并不相互影响,如图1所示。
图1 Kickstart网络自动化安装技术拓扑图
图2 Kickstart网络自动化安装步骤图
在Kickstart网络自动化安装技术架构中,DHCP服务器用于IP地址分配、指示PXE客户机pxelinux启动程序和配置文件的下载地址。TFTP服务器用于放置pxelinux启动程序和配置文件,PXE客户机从TFTP服务器上下载并执行pxelinux引导程序,在内存中加载系统内核,构建一个基本的操作系统。HTTP服务器用于放置系统安装镜像和Kickstart的配置文件。在客户机内存中已构建的基本操作系统,从HTTP服务器中读取Kickstart配置文件“ks.cfg”,根据该配置文件执行安装程序,从HTTP服务器中读取系统安装镜像,在硬盘上安装操作系统。在系统安装过程需要进行设置参数时,程序自动根据“ks.cfg”文件中的配置完成参数设置,最终完成Linux系统的安装。Kickstart网络自动化安装步骤如图2所示。
使用网络自动化安装Linux系统的客户机,必须开放网卡的PXE启动功能。目前几乎所有网卡都具备PXE启动功能,但客户机BIOS中有可能是将此功能默认设置为禁止启动的。在进行安装之前,需要将该功能开放。
经验总结
基于Kickstart网络自动化安装技术,主要用到了PXE网络技术和Kickstart技术。PXE网络技术主要负责客户机安装程序的引导和内核加载,为系统安装做好初始化准备。Kickstart技术则负责Linux操作系统的安装和配置。本文主要对Kickstart网络自动化安装技术的原理进行了分析和介绍。在实际运维工作中运用这种技术,可以有效地减少大规模安装Linux 操作系统的工作量,提高维护效率。