基于PXE自动化系统部署设计与实现

2019-08-23 02:44朱先亮张学峰
电子技术与软件工程 2019年14期
关键词:客户端部署启动

文/朱先亮 张学峰

1 引言

IT部门通过基于PXE网络引导工具搭建网络化系统部署平台,使IT人员部署工作变得快捷高效,减少计算机在系统故障修复时限,降低系统部署难度,降低运维成本。同时,使用可靠且一致的过程将操作系统、桌面软件和Windows更新一次性部署到新计算机系统。在集中的文件系统中管理操作系统映像、驱动程序和应用程序文件,成为提高企业IT部门工作效率有很好的技术方法。

基于网络化的自动系统部署是通过PXE引导,启动到安装环境,通过编排的无人值守部署脚本,实现Windows系统自动配置,快速完成系统部署和应用软件的零接触静默安装,减少部署过程的人机交互,以实现快捷标准化系统部署。系统部署平台主要由PXE启动服务器、DHCP服务器、系统文件分发服务器、参考计算机及目标计算机等组成。根据具体服务器配置和并发系统分发的用户数,可以将PXE服务器、DHCP服务器、分发服务器合并为一台物理服务器或者各自独用一台服务器。

2 系统部署平台原理

系统部署平台有主要由PXE引导阶段、部署环境启动阶段和系统正式部署阶段三个过程。

2.1 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网络启动计算机的过程。

2.2 安装环境启动阶段

在下载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所示。

2.3 系统部署阶段

在完成启动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所示。

3 部署平台设计与实现

系统部署平台一般有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所示。

5 结束语

利用基于PXE自动化系统部署平台实现快速化、规模化和标准化的系统部署,对降低系统部署的工作难度和提高IT部门的工作效率提供很好的帮助,并且能有很好的硬件驱动程序库管理和适配,有利于包括 Windows 7、Windows Server 2008 R2、Windows 10和Windows Server 2016)多类型混合映像的版本管理和控制,提高系统的并行安装部署的能力,是一套简易高效、切实可行的系统部署解决方案。

猜你喜欢
客户端部署启动
一种基于Kubernetes的Web应用部署与配置系统
晋城:安排部署 统防统治
部署
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现
雾霾来袭 限产再次启动
安发生物启动2017
部署“萨德”意欲何为?
俄媒:上合组织或9月启动扩员