引言:基于Kickstart的網絡自動化安裝技術,能夠有效地減少大規模安裝Linux操作系統的工作量,提高維護工作效率。雖然該技術比較成熟,在網上有較多的配置實例,但往往都只是重視配置本身,而忽略對技術原理的分析,初學者不易理解。本文主要對該安裝技術的運行原理和步驟進行介紹,希望能夠幫助初學者理解和學習該方法。
筆者單位機房需要安裝大量的服務器,這些服務器要求安裝Linux操作系統。如果采用人工安裝的方式來安裝操作系統,除了需要準備光驅、光盤或U盤等安裝介質外,還要花費大量的時間進行安裝,而其中基本都是重復的工作內容。在機房網絡環境中,針對大批量同一安裝要求的服務器,相比人工安裝方式而言,采用無人值守的網絡自動化安裝方式無疑是更為便利和有效的。
基于Kickstart的網絡自動化安裝技術,技術架構主要使用了PXE網絡技術和Kickstart的技術。原理是客戶端通過PXE網絡技術從安裝服務器中自動獲取IP地址、下載映像、加載操作系統,再根據事先設計的Kickstart配置文件參數完成系統安裝,實現Linux操作系統的無人值守安裝。同時,由于該技術采用Client/Server網絡架構模式,所以可以實現同時大批量安裝。
基于Kickstart的網絡自動化安裝技術,是比較成熟的技術,在網上有較多的配置實例,有詳細的配置步驟,但對原理的介紹卻并不詳細。本文并不列舉實際配置,而是主要針對該安裝技術架構的運行原理和步驟進行詳細分析和介紹。
Kickstart是RedHat公司開發的一種無人值守安裝方式,工作原理是將安裝過程所需要的信息事先記錄在Kickstart的配置文件ks.cfg中,然后可使用硬盤、光盤、網絡等多種方式進行安裝。在安裝過程中,當遇到要求填寫參數的情況,安裝程序會查找ks.cfg文件,從中查詢安裝參數。由于所有安裝信息均已在ks.cfg中事先設置,所以安裝時系統不需要人工干預,直到安裝完成為止。
Kickstart網絡安裝,可選擇使用NFS、FTP或HTTP三種方式之一進行安裝。NFS、FTP和HTTP服務器中存放系統安裝文件(本文用HTTP服務器為例進行分析)。
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網絡自動化安裝技術,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 操作系統的工作量,提高維護效率。