文/朱先亮 張學(xué)峰
IT部門通過基于PXE網(wǎng)絡(luò)引導(dǎo)工具搭建網(wǎng)絡(luò)化系統(tǒng)部署平臺,使IT人員部署工作變得快捷高效,減少計(jì)算機(jī)在系統(tǒng)故障修復(fù)時限,降低系統(tǒng)部署難度,降低運(yùn)維成本。同時,使用可靠且一致的過程將操作系統(tǒng)、桌面軟件和Windows更新一次性部署到新計(jì)算機(jī)系統(tǒng)。在集中的文件系統(tǒng)中管理操作系統(tǒng)映像、驅(qū)動程序和應(yīng)用程序文件,成為提高企業(yè)IT部門工作效率有很好的技術(shù)方法。
基于網(wǎng)絡(luò)化的自動系統(tǒng)部署是通過PXE引導(dǎo),啟動到安裝環(huán)境,通過編排的無人值守部署腳本,實(shí)現(xiàn)Windows系統(tǒng)自動配置,快速完成系統(tǒng)部署和應(yīng)用軟件的零接觸靜默安裝,減少部署過程的人機(jī)交互,以實(shí)現(xiàn)快捷標(biāo)準(zhǔn)化系統(tǒng)部署。系統(tǒng)部署平臺主要由PXE啟動服務(wù)器、DHCP服務(wù)器、系統(tǒng)文件分發(fā)服務(wù)器、參考計(jì)算機(jī)及目標(biāo)計(jì)算機(jī)等組成。根據(jù)具體服務(wù)器配置和并發(fā)系統(tǒng)分發(fā)的用戶數(shù),可以將PXE服務(wù)器、DHCP服務(wù)器、分發(fā)服務(wù)器合并為一臺物理服務(wù)器或者各自獨(dú)用一臺服務(wù)器。
系統(tǒng)部署平臺有主要由PXE引導(dǎo)階段、部署環(huán)境啟動階段和系統(tǒng)正式部署階段三個過程。
Preboot Execution Environment (PXE)規(guī)范是由Intel公司定義的一組機(jī)制和協(xié)議,用于服務(wù)器向客戶端計(jì)算機(jī)網(wǎng)絡(luò)接口卡(NIC)提供網(wǎng)絡(luò)啟動程序,在NBP作用下查找執(zhí)行指派工作所需文件,使用動態(tài)主機(jī)配置協(xié)議(DHCP)和普通文件傳送協(xié)議(TFTP),裝載和引導(dǎo)操作系統(tǒng)啟動的一組通用的預(yù)引導(dǎo)服務(wù)集。
PXE引導(dǎo)協(xié)議分為Server端和Client端,當(dāng)計(jì)算機(jī)開機(jī)引導(dǎo)時,計(jì)算機(jī)在Legacy BIOS或UEFI模式下,把PXEClient經(jīng)NIC上的ROM調(diào)入內(nèi)存中,并顯出PXE網(wǎng)絡(luò)啟動選項(xiàng),在用戶選擇PXE啟動選項(xiàng)后,PXE客戶端以DHCPDiscover廣播至UDP端口67,請求DHCP服務(wù)端分配IP地址,在獲取到IP地址的同時向DHCP服務(wù)端申請引導(dǎo)文件名,引導(dǎo)服務(wù)器向PXE客戶端返回自舉程序文件名等候請求,引導(dǎo)服務(wù)器提供NBP (Network Bootstrap Program)文件,最后從TFTP服務(wù)器上下載NBP文件,在客戶端上執(zhí)行,完成PXE網(wǎng)絡(luò)啟動計(jì)算機(jī)的過程。
在下載NBP后,客戶端首先依賴啟動完整性服務(wù)BIS(Boot Integrity Services)的SMBIOS結(jié)構(gòu)和BIS引導(dǎo)對象的授權(quán)標(biāo)志判定,根據(jù)需要從啟動服務(wù)器獲取NBP憑證以完成身份驗(yàn)證。然后NBP針對下載的不同類型的NBP文件來啟動不同的計(jì)算機(jī)操作系統(tǒng)。以Windows系列安裝為例,PXE客戶端會PXE服務(wù)器上搜索并加載wdsnbp.com、pxeboot.com或Bootmgfw.efi文 件,下載WinPE.wim映像、創(chuàng)建Ramdisk、啟動Windows PE預(yù)安裝環(huán)境來執(zhí)行后續(xù)部署Windows任務(wù)。
如果是Linux系統(tǒng)安裝,pxelinux.0(NBP) 他會下載 default 配置文件,來顯示菜單,根據(jù)需要啟動不同的Kernel Image.為Linux安裝創(chuàng)建安裝環(huán)境。在解析一個PXE Enabled的DHCP服務(wù)器返回的DHCPOFFER包后,PXE Client就能夠設(shè)置自己的IP地址、IP Mask等等,并且指向網(wǎng)絡(luò)上的啟動資源,比如TFTP服務(wù)器上的vmlinuz文件和initrd文件。這些完成安裝環(huán)境啟動過程。如圖1所示。
在完成啟動Windows PE或Basic Linux Kernel+initrd預(yù)安裝環(huán)境,裝載了網(wǎng)絡(luò)驅(qū)動和TCP/IP協(xié)議棧之后,客戶端Client開始boot或者install完整的操作系統(tǒng)了,而這個boot或install的過程,不再通過TFTP來執(zhí)行,而是通過更加健壯的網(wǎng)絡(luò)傳輸協(xié)議(如HTTP、CIFS、iSCSI或NFS)來傳輸安裝文件。
圖1
圖2
圖3
圖4
操作系統(tǒng)之所以能夠批量部署,是因?yàn)橄到y(tǒng)安裝過程都是程式化、標(biāo)準(zhǔn)化的安裝流程,從Vista之后的操作系統(tǒng)安裝過程主要分為:PE引導(dǎo),正式安裝和OOBE三個過程。PE引導(dǎo)是在安裝操作系統(tǒng)之前選擇的語言及硬盤分區(qū)信息,然后才開始正式安裝。其中正式安裝還細(xì)分為5個主要步驟分別為備份狀態(tài)、安裝Windows,設(shè)置Windows、安裝應(yīng)用程序和還原狀態(tài)。在OOBE(Out of Box Experience)配置階段,常用于配置 Windows 外殼程序選項(xiàng),創(chuàng)建用戶帳戶,并指定語言和區(qū)域設(shè)置等。如圖2所示。
系統(tǒng)部署平臺一般有Windows Server系統(tǒng) 和 以RedHat,CentOS,F(xiàn)edora為 代 表 的RedHat系統(tǒng)、以Debian,Ubuntu,Mint等及其衍生版本為代表的Debian系統(tǒng),他們的網(wǎng)絡(luò)部署平臺設(shè)計(jì)原理相同,但在具體實(shí)現(xiàn)方法根據(jù)不同的服務(wù)端操作系統(tǒng)軟件有所差異,在本篇中主要針對Windows體系,采用部署平臺安裝簡單靈活的PXEServer+TFTP+Net Share的方式,現(xiàn)就具體過程進(jìn)行簡單闡述。
(1)PXE引導(dǎo)部分采用Tiny PXE Server引導(dǎo)系統(tǒng),從PXE服務(wù)端下載NBP、Bootmgr.exe(Bootmgr.efi)、WinPE相關(guān)的啟動文件和WIM映像文件。加載執(zhí)行的Bootmgr.exe通過在WindowsPE映像中調(diào)用winload來啟動Windows PE,加載完成的Windows PE、打開Wpeinit.exe 以初始化Windows PE,完成安裝環(huán)境準(zhǔn)備工作。
(2)為使安裝環(huán)境能夠適應(yīng)多種Windows10、Windows8.1和Windows7等系統(tǒng)的安裝,設(shè)計(jì)將安裝映像通過UNC網(wǎng)絡(luò)路徑\serversharefile_path的方式放在PXE服務(wù)器的共享文件目錄下,并映射到客戶端,共享網(wǎng)盤為 Z盤。該設(shè)計(jì)解決了安裝媒體存放文件4G的限制,而且具有多映像共存共享的優(yōu)勢。
(3)需要把WindowsPE的Shell腳本W(wǎng)inpeshl.cmd進(jìn)行優(yōu)化修改,腳本核心代碼如圖3所示。
(4)為了在系統(tǒng)部署過程中無需人員干預(yù),達(dá)到零接觸(ZTI)或少接觸(LTI)安裝,需用Windows 系統(tǒng)映像管理器 (Windows SIM) 創(chuàng)建的unattend.xml應(yīng)答文件用dism工具整合進(jìn)相對應(yīng)的Windows 映像中。
(5)在用WindowsPE預(yù)安裝環(huán)境跨平臺部署時,優(yōu)點(diǎn)是無需維護(hù)多個版本的Windows PE用于安裝不同的體系結(jié)構(gòu)版本的Windows。但需要特別注意的是:可以使用32位版本的Windows PE和Windows安裝程序來安裝Windows的32位和64位版本,但64位WindowsPE僅能安裝64位的Windows版本。32 位 UEFI 和 BIOS PC 和 64 位 BIOS PC,可以啟動 Windows PE 的 32 位版本。64 位的 UEFI 和 BIOS 電腦,可以啟動 Windows PE 的 64 位版本。如圖4所示。
利用基于PXE自動化系統(tǒng)部署平臺實(shí)現(xiàn)快速化、規(guī)?;蜆?biāo)準(zhǔn)化的系統(tǒng)部署,對降低系統(tǒng)部署的工作難度和提高IT部門的工作效率提供很好的幫助,并且能有很好的硬件驅(qū)動程序庫管理和適配,有利于包括 Windows 7、Windows Server 2008 R2、Windows 10和Windows Server 2016)多類型混合映像的版本管理和控制,提高系統(tǒng)的并行安裝部署的能力,是一套簡易高效、切實(shí)可行的系統(tǒng)部署解決方案。