β

基于WDS+MDT全自动部署WIN系统

运维军团 59 阅读

1. 概述

提到安装操作系统这个事情,可能是大家比较苦恼而又不得不面对的一个问题,目前比较常用的安装系统的方法有光盘和U盘。但要实现远程安装、用户自助、批量部署及无人值守安装的需求显然有些乏力。本文我们要介绍我们如何利用基于Windows Server 2012的部署服务实现网络批量部署系统,并解决后期各种系统定制功能问题。

2. 服务框架

2.1 主要组件

整个架构图如下:

以上基础服务的安装网络上有很多详细的步骤教程,在此不进行展开陈述,本篇文章重点探讨安装基础服务之后部署服务的具体关键配置,一些简单的步骤会直接省略。

2.2 WDS部署

WDS服务部署起来比较简单。

先在角色那里添加“windows部署服务”,也就是WDS。添加好之后在进行映像安装,必须至少添加一个启动映像和一个安装映像,才能启动到 Windows 部署服务服务器并安装映像。

启动映像和linux的images/install.img一样是一个引导程序,比如文中使用的是windows 7 x64 专业版里面的Sources\Boot.wim,安装映像是部署到客户端计算机的操作系统映像,可以使用ISO文件中的 Install.wim 文件,或者使用自定义安装映像创建自己的安装映像。

注意映像添加完之后需要在下面的驱动程序选项那里预添加好我们机器对应的驱动程序。而且添加好驱动之后需要在启动映像那里进行导入才可以正常使用。如图:

而且后面正式安装时候也比较容易出现驱动问题,最好预先全面处理。

2.3 系统安装

Windows 部署服务要求客户端支持PXE网络启动,在这之前需要先确认主板是否启用PXE网络。以华硕主板为例,进入BIOS后,选择高级→内置设备设置→Realtek PXE OPROM,将其设置为开启。至此,我们可以使用WDS执行网络部署Windows系统。

将客户端和服务器设置在同个VLAN,开机选择从网卡启动(Realtek Boot Agent),客户端就愉快地进行自动安装。

系统进行DHCP自动获取IP之后就是进行文件自动拷贝了:

这样用户端从网络安装win7系统已经初步成形了,虽然可以用,但是不完美,首次进入桌面之前,需要一系列的初始化设置,那么怎么来实现无人值守自动化呢,这就需要进一步地进行优化了。

2.4 全自动化

要实现全自动化安装用Windows自动安装工具包 AIK可以实现,但是比较简单,只支持一些基础的配置响应,不支持系统软件的定制安装,这里建议使用MDT来做自动化。

这个MDT就完全和CentOS下面的ks.cfg文件类似了,可以做一些列的自动化配置和脚本执行操作。不过需要另外下载安装,安装好之后把对应的镜像制作好,然后WDS导入对应的镜像就可以实现全自动化了。

配置起来比较复杂,下面做详细介绍。

3. MDT配置

MDT(Microsoft Deployment Toolkit)主要解决我们需要在安装操作系统时自动化安装一些必要软件和设置一些个性化系统定制,我们可以利用MDT来完成自动化的安装部署。下面介绍安装完MDT之后如何设置相关组件,使其能完成自动化部署。

配置完共享目录的MDT控制台节点介绍:

(1)Applications节点:用来安装可以自动静默安装的软件程序;

(2)Operating Systems节点:操作系统映像,可以导入包含瘦映像在内的多种映像;

(3)Out-of-Box Drivers节点:驱动程序节点,可以对客户端进行安装驱动程序的操作;

(4)Packages节点:补丁节点,可以导入Windows补丁文件,要求必须是msu文件;

(5)Task Sequences节点:任务序列节点,捕获映像、部署映像都需要在这个节点创建任务序列。

3.1 配置安装源和镜像

部署操作系统,需要先添加系统安装的源文件,我们这里选择“Full set of source files”导入windows7 x64专业版sources\install.wim的映像文件。

然后进行启动镜像的配置,在属性这里先进行简单配置:

切换到Windows PE下,选择X64平台,若不需要ISO文件,则可以不勾选”Generate a lite Touch bootable ISO image“(生成一个精简版的ISO引导镜像);

3.2 规则配置

设置MDT配置规则,可以根据配置参数轻松配置完成操作系统部署过程中的应答文件,使整个安装过程自动化。此文件位于共享文件夹路径:Control/CustonSettings下。

切换到Rules选项卡;

按照需求设置,具体选项可以参考网络资料。

然后就是设置Bootstrap.ini参数,切换到”Rules“选项卡,点击”Edit Bootstrap.ini”,文件在路径:D:\DeploymentShare\Control,默认信息配置如下:

改完一些自动化规则之后也需要和ks.cfg那样进行磁盘分区配置。

3.3 磁盘分区

继续添加任务序列之后,选中对应的任务序列,右键选择“属性”;

选择“Task Sequence”,依次选择“Preinstall”→“New Computer only”→“Format and Partition Disk”,然后进行磁盘自定义分区。

以上步骤是针对全新安装合盘格式化的场景,如果是只需要重新安装C盘,不需要合盘格式化,则可以禁用此步骤,在“Option”选项卡中,勾选“Disable this step”禁用此步骤;

3.4 定制脚本

在系统安装完成后可以通过配置任务队列执行需要的命令脚步,比如在新装系统的桌面放置指定文件。怎么实现呢?

这里可以利用MDT任务序列中的CMD命令来实现,主要步骤:

(1)先将要将文件统一放置到服务器共享目录:”%DEPLOYROOT%\Custom\File\*.*”;

(2)在MDT序列中,点击到State Restore初始化阶段,然后新增加一个类型为“Run Command Line”的任务;

(3)然后在其Command line中写入需要执行的复制命令:

xcopy.exe “%DEPLOYROOT%\Custom\File\*.*” “C:\Users\Administrator\Desktop” /Q /H /E /I /Y

3.5 添加软件

这里的自定义软件安装和CentOS的rpm打包不一样了,因为不是绿色软件,每个软件的安装命令也不一样,需要找到对应的安装参数才行。

这里介绍定制系统常用软件的自动安装命令:

以添加chrome为例,主要是在添加命令这一个参数这里填上:chrome.exe /s,其他的都保持默认。因为添加路径只能是目录需要每个应用在一个独立的目录名。

图例如下:

3.6 生成镜像文件

(1)选中”MDT Deployment Share“右键”Update Deployment Share“;

(2)这里有两种更新方式,一种是最简化更新,相当于差异更新;另一种是完全更新,生成一个全新的启动镜像;首次设置选择默认;

(3)确认配置信息并完成更新;

完成更新后生成的文件如下:

然后在WDS那里添加这里新生成的启动映像即可。这样类似anaconda的自动安装服务就全部在win上实现了。

4. 后台自动化

想更进一步的无人值守远程全自动化安装系统的话,我们也实现了。

系统部署服务搭建之后,只要满足服务端客户端同个网段以及客户端开机从网卡启动,客户端就能自动进入部署操作系统流程。按照这两个条件,如果有同事的主机需要重装系统,在其备份好系统盘文件资料的前提下,将其工位下的网络端口切换到部署服务的网段,然后让同事开机从网卡启动即可。说时迟、那时快,弹指间重装系统就这样解决了——无须亲临现场,无须U盘启动PE,无须手动干预进程。

这样在收到重装操作系统的需求之后,只要在对应工位端口下用鼠标点击切换一下即可,整个过程更加自动化了。

5. 问题记录

至此,使用MDT+WDS就完全实现了包括软件安装和系统定制功能无人值守的全自动化部署操作系统。以及一些系统定制功能的实现和部分遇到的问题。实践过程中反复的调试过程总结了一些踩过的坑,相信能为你提供解决问题的思路和方法。

5.1 应答文件错误

如下图,使用应答文件部署操作系统之后,出现以下错误。

经过查看文档和相关资料,在反复测试之后,发现在制作应答文件过程中,其中一个组件参数(Miscrosoft-Windows-Security-Licensing-SLC-UX)在Windows 7中被弃用(但在Windows Vista系统中是可用的),导致应答文件不生效并且报错,解决方法是使用Miscrosoft-Windows-Security-SPP-UX这个组件的参数。

5.2 提示5456错误

如图安装过程弹出错误,提示“错误5456,无法确定目标硬盘分区”。

这种情况一般出现在多硬盘或者新硬盘未分区情况下; 在重装系统场景下,目前的解决方法是在”任务序列“的”Install“→”Install Operating System“中,将“Select the location where you want to apply this operating system”设置为“Specific logical drive letter”,并将其值设置为“C”,也就是手动指定安装在C盘。

5.3 驱动问题

PC机的驱动问题最常见,一般是针对报错信息来下载对应驱动,然后预先导入,但是有时候预先导入的驱动也不管用。

比如dell 7040的这个错误,能很确定是网卡驱动问题。各种导入都故障依旧,后来到网卡驱动对应厂家Intel官网查到对应型号驱动的最新版本进行尝试,终于能解决错误故障。

故障原因大致确定是新Dell硬件驱动在PE阶段的兼容性问题,使用最版本的驱动得以解决。这个故障因为校对驱动问题花了很长时间,建议有遇到这个问题的朋友,无须使用官方驱动,直接上Intel或AMD官网下载对应驱动。

5.4 USB3.0问题

在执行完自动部署之后,已经安装了操作系统的新dell无法使用键盘鼠标,即USB接口都无法使用。初步认为应该是主板USB驱动,于是在官网查找最新的USB驱动并更新,问题依旧没能解决。

想到之前遇到的USB3.0问题,第六代酷睿采用的是skylake平台,而Skylake平台上不再支持USB接口装Windows 7系统了。这是因为Intel 在新一代的Skylake平台上移除了EHCI主控,改为XHCI主控支持,而原生的Windows 7系统并不支持XHCI主控。简而言之,没了EHCI,Skylake平台上装Windows 7系统时无法识别USB接口。

解决的方法是,对原版系统加入USB3.0 的支持,然后再重新将新系统导入到MDT中。

6. 总结

以上就是基于Windows WDS+MDT实现自动化部署操作系统的一些高级功能和相关问题记录。总而言之,Windows WDS+MDT是一套部署操作系统的全面解决方案,根据业务需求还有域相关自动化操作、USMT操作系统升级以及结合SCCM拓展高阶功能等。部署整体思路原理是比较清晰的,关键难点在于硬件驱动和软件版本的匹配,特别是在硬件快速迭代升级的今天。

END

作者:运维军团
运维技术与开源架构交流
原文地址:基于WDS+MDT全自动部署WIN系统, 感谢原作者分享。

发表评论