文/朱先亮 張學峰
IT部門通過基于PXE網絡引導工具搭建網絡化系統部署平臺,使IT人員部署工作變得快捷高效,減少計算機在系統故障修復時限,降低系統部署難度,降低運維成本。同時,使用可靠且一致的過程將操作系統、桌面軟件和Windows更新一次性部署到新計算機系統。在集中的文件系統中管理操作系統映像、驅動程序和應用程序文件,成為提高企業IT部門工作效率有很好的技術方法。
基于網絡化的自動系統部署是通過PXE引導,啟動到安裝環境,通過編排的無人值守部署腳本,實現Windows系統自動配置,快速完成系統部署和應用軟件的零接觸靜默安裝,減少部署過程的人機交互,以實現快捷標準化系統部署。系統部署平臺主要由PXE啟動服務器、DHCP服務器、系統文件分發服務器、參考計算機及目標計算機等組成。根據具體服務器配置和并發系統分發的用戶數,可以將PXE服務器、DHCP服務器、分發服務器合并為一臺物理服務器或者各自獨用一臺服務器。
系統部署平臺有主要由PXE引導階段、部署環境啟動階段和系統正式部署階段三個過程。
Preboot Execution Environment (PXE)規范是由Intel公司定義的一組機制和協議,用于服務器向客戶端計算機網絡接口卡(NIC)提供網絡啟動程序,在NBP作用下查找執行指派工作所需文件,使用動態主機配置協議(DHCP)和普通文件傳送協議(TFTP),裝載和引導操作系統啟動的一組通用的預引導服務集。
PXE引導協議分為Server端和Client端,當計算機開機引導時,計算機在Legacy BIOS或UEFI模式下,把PXEClient經NIC上的ROM調入內存中,并顯出PXE網絡啟動選項,在用戶選擇PXE啟動選項后,PXE客戶端以DHCPDiscover廣播至UDP端口67,請求DHCP服務端分配IP地址,在獲取到IP地址的同時向DHCP服務端申請引導文件名,引導服務器向PXE客戶端返回自舉程序文件名等候請求,引導服務器提供NBP (Network Bootstrap Program)文件,最后從TFTP服務器上下載NBP文件,在客戶端上執行,完成PXE網絡啟動計算機的過程。
在下載NBP后,客戶端首先依賴啟動完整性服務BIS(Boot Integrity Services)的SMBIOS結構和BIS引導對象的授權標志判定,根據需要從啟動服務器獲取NBP憑證以完成身份驗證。然后NBP針對下載的不同類型的NBP文件來啟動不同的計算機操作系統。以Windows系列安裝為例,PXE客戶端會PXE服務器上搜索并加載wdsnbp.com、pxeboot.com或Bootmgfw.efi文 件,下載WinPE.wim映像、創建Ramdisk、啟動Windows PE預安裝環境來執行后續部署Windows任務。
如果是Linux系統安裝,pxelinux.0(NBP) 他會下載 default 配置文件,來顯示菜單,根據需要啟動不同的Kernel Image.為Linux安裝創建安裝環境。在解析一個PXE Enabled的DHCP服務器返回的DHCPOFFER包后,PXE Client就能夠設置自己的IP地址、IP Mask等等,并且指向網絡上的啟動資源,比如TFTP服務器上的vmlinuz文件和initrd文件。這些完成安裝環境啟動過程。如圖1所示。
在完成啟動Windows PE或Basic Linux Kernel+initrd預安裝環境,裝載了網絡驅動和TCP/IP協議棧之后,客戶端Client開始boot或者install完整的操作系統了,而這個boot或install的過程,不再通過TFTP來執行,而是通過更加健壯的網絡傳輸協議(如HTTP、CIFS、iSCSI或NFS)來傳輸安裝文件。

圖1

圖2

圖3

圖4
操作系統之所以能夠批量部署,是因為系統安裝過程都是程式化、標準化的安裝流程,從Vista之后的操作系統安裝過程主要分為:PE引導,正式安裝和OOBE三個過程。PE引導是在安裝操作系統之前選擇的語言及硬盤分區信息,然后才開始正式安裝。其中正式安裝還細分為5個主要步驟分別為備份狀態、安裝Windows,設置Windows、安裝應用程序和還原狀態。在OOBE(Out of Box Experience)配置階段,常用于配置 Windows 外殼程序選項,創建用戶帳戶,并指定語言和區域設置等。如圖2所示。
系統部署平臺一般有Windows Server系統 和 以RedHat,CentOS,Fedora為 代 表 的RedHat系統、以Debian,Ubuntu,Mint等及其衍生版本為代表的Debian系統,他們的網絡部署平臺設計原理相同,但在具體實現方法根據不同的服務端操作系統軟件有所差異,在本篇中主要針對Windows體系,采用部署平臺安裝簡單靈活的PXEServer+TFTP+Net Share的方式,現就具體過程進行簡單闡述。
(1)PXE引導部分采用Tiny PXE Server引導系統,從PXE服務端下載NBP、Bootmgr.exe(Bootmgr.efi)、WinPE相關的啟動文件和WIM映像文件。加載執行的Bootmgr.exe通過在WindowsPE映像中調用winload來啟動Windows PE,加載完成的Windows PE、打開Wpeinit.exe 以初始化Windows PE,完成安裝環境準備工作。
(2)為使安裝環境能夠適應多種Windows10、Windows8.1和Windows7等系統的安裝,設計將安裝映像通過UNC網絡路徑\serversharefile_path的方式放在PXE服務器的共享文件目錄下,并映射到客戶端,共享網盤為 Z盤。該設計解決了安裝媒體存放文件4G的限制,而且具有多映像共存共享的優勢。
(3)需要把WindowsPE的Shell腳本Winpeshl.cmd進行優化修改,腳本核心代碼如圖3所示。
(4)為了在系統部署過程中無需人員干預,達到零接觸(ZTI)或少接觸(LTI)安裝,需用Windows 系統映像管理器 (Windows SIM) 創建的unattend.xml應答文件用dism工具整合進相對應的Windows 映像中。
(5)在用WindowsPE預安裝環境跨平臺部署時,優點是無需維護多個版本的Windows PE用于安裝不同的體系結構版本的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自動化系統部署平臺實現快速化、規?;蜆藴驶南到y部署,對降低系統部署的工作難度和提高IT部門的工作效率提供很好的幫助,并且能有很好的硬件驅動程序庫管理和適配,有利于包括 Windows 7、Windows Server 2008 R2、Windows 10和Windows Server 2016)多類型混合映像的版本管理和控制,提高系統的并行安裝部署的能力,是一套簡易高效、切實可行的系統部署解決方案。