4. 修改 sysprep.inf 以包括变量
Mini-Setup 使用 Sysprep.inf 文件来安装和配置操作系统。这个文件包含您刚添加到 ADS 控制器数据库的配置文件详细信息。这种配置信息对于映像来说是静态的。ADS 通过允许您在 sysprep.inf 文件中插入变量使得您可以自定义 sysprep.inf 文件。通过这种方式,您可以从 sysprep.inf 文件中删除将随系统的改变而改变的配置信息。而变量配置将转到 ADS 控制器中。
在修改映像中的 sysprep.inf 文件之前,您将需要把映像安装到驱动器。ADS 有支持这种功能的工具。可以使用下面的命令行语法来更改映像的目录和安装映像:
imgmount /mount /w {imagefilename} /d: driveletter
将驱动器更改为上面的驱动器字母,并且目录更改为 sysprep 目录。有两种创建或修改 sysprep.inf 的方法,您可以通过 setupmgr.exe,也可以通过 notepad.exe。请参见“服务器集群的基于图像安装”部分以获得更多关于 sysprep.inf 的信息。
打开 notepad.exe 中的 sysprep.inf 文件。查找随系统的改变而改变的安装变量。将它们定义为变量而不是将静态值放入 sysprep.inf 文件中。例如,在 sysprep.inf 文件的以下片断中,在行的开头用 * 标记的项可以定义为变量。每个系统的这些设置都有所不同。
[params.MS_TCPIP.Adapter01]
* DHCP="No"
* IPAddress="10.11.26.11,,172.24.11.141"
SpecificTo=Adapter01
* SubnetMask="255.255.0.0,255.255.255.0"
* WINS="No"
;Adapter02 用于公共网络
[params.MS_TCPIP.Adapter02]
SpecificTo=Adapter02
* DefaultGateway="172.24.11.1"
* DHCP="No"
* IPAddress="172.24.11.205"
* SubnetMask="255.255.255.0"
* DNSServerSearchOrder="172.24.10.2,172.24.0.2"
* WINS="Yes"
* WINSServerList="157.55.254.201,157.55.254.203"
[GuiRunOnce]
;请参见本文档的第 2.2.1 节以获得 AssignDriveLetters.bat 文件的示范文本
;请参见“配置集群”部分以获得 createfs.vbs
*Command0=%systemdrive%\scripts\AssisgnDriveLetters.bat
*Command1 = "%windir%\system32\cluster.exe /cluster:SV-CLUSTER /CREATE /NODE:SV-NODE1 /USER:domain\user /PASS:***** /IPADDR: 157.5.5.50"
*Command2 = "%systemdrive%\ClusterInstallFiles\createfs.vbs SV-CLUSTER ClusterGroup SVFileShareResource E:\ SVFileShare"
在用变量替换了这些命令之后,该片断将看起来像是这样的。注意每个变量名都是以 ^ 开头且以 ^ 结尾的。它们必须包含在引号之中。如果不这样做的话,ADS 将不会正确地安装和配置操作系统。注意:在 guirunonce 部分,上面的样本片断也将集群配置命令替换为变量。在成功安装之后,Windows 将在配置集群服务或任何其他指定的服务第一次启动时运行 guirunonce 中的命令。
[params.MS_TCPIP.Adapter01]
DHCP="^DHCP1^"
IPAddress="^IPAddress1^"
SpecificTo=Adapter01
WINS="^WINS1^"
;Adapter02 用于公共网络
[params.MS_TCPIP.Adapter02]
DefaultGateway="^DefaultGateway2^"
SpecificTo=Adapter02
DHCP="^DHCP2^"
IPAddress="^IPAddress2^"
DNSServerSearchOrder="^DNSServerSearchOrder2^"
WINS="^WINS2^"
WINSServerList="^WINSServerList2^"
[GuiRunOnce]
;在形成/加入集群之前装载所有的磁盘卷
Command0="^CLUSTER_COMMAND_MOUNT^"
Command1=^AssignDriveLetters^
Command2="^CLUSTER_COMMAND^"
Command3=^FileShare^
在您修改了 sysprep.in 文件之后,就可以使用下面的命令行接口来卸载映像。
Imgmount u drive:
ADS 还允许您通过脚本来定义变量。请参阅 ADS 帮助中的管理映像部分以获得更多的信息。
注意:附录 F 包含已修改的完整样本 sysprep.inf。
您还可以使用 setupmgr.exe 来创建、修改无人值守安装文件,带有变量的 syspre.inf 文件。通过 cmd 窗口运行 setupmgr.exe。
查看全尺寸图片。
选择“新建”
查看全尺寸图片。
选择“sysprep 安装”
查看全尺寸图片。
选择您想要部署的操作系统类型
查看全尺寸图片。
查看全尺寸图片。
上面允许您输入用于安装的变量。这里您可以提供您将要在 ADS 中定义的变量名来代替提供实际值。例如,^Name^ 是其值将通过 ADS 进行替换的变量。
查看全尺寸图片。
在完成了上面的操作之后,单击“运行一次”并输入集群配置命令。在上面的示例中,^cluster_create_command^ 变量被插入 sysprep.inf 文件中,它的实际值将定义在 ADS 中。一旦用变量创建了 sysprep.inf,就可以保存它,并且通过安装映像到驱动器来将这个 sysprep.inf 文件复制到映像中
5. 创建映像部署的任务序列文件
下一步是创建 ADS 控制器的任务序列文件。它是一个 XML 文件,其中包含控制器的任务序列,这些任务序列可以对一个设备执行,也可以对一组设备执行。ADS 带有几个样本序列文件,您可以使用这些样本 XML 文件中的任何一个,而且还可以根据您的需要对其进行修改。在这个文件中,您将为控制器定义个性化的变量来替换 sysprep.inf 文件中的变量。此外,您还将定义在控制器的其他任务序列中什么样的任务序列必须对设备运行。例如,划分磁盘、复制映像、替换 sysprep.inf 文件中的变量、重新启动设备和检查设备的状态等等。
您至少将需要修改样本 XML 文件中的如下部分以便它正确地工作。
<!-- 步骤 1 在磁盘上创建单个 4999MB 分区 -->
<task description="Partition the disk">
<command>/bmonitor/bmpart.exe</command>
<parameters>
<parameter>\device\harddisk0</parameter> <!-- 选择 harddisk0 -->
<parameter>/init</parameter> <!-- 擦除 harddisk0 上的所有分区 -->
<parameter>/C:4999</parameter> <!-- 创建一个大小为 4999MB 的新分区(#1) -->
<parameter>/A</parameter>
<!-- 激活新创建的分区(#1) -->
</parameters>
</task>
在上面的部分(步骤 1)中,您需要定义磁盘的分区大小。在上面的示例中,一个大小为 4999MB 的分区将在驱动器 0 上创建。
<!-- STEP 2 download images -->
<task description="Download image">
<command>/imaging/imgbmdeploy.exe</command>
<parameters>
<parameter>3718Plain</parameter> <!-- 将映像命名为已部署的-->
<parameter>\device\harddisk0\partition1</parameter> <!-- 将映像部署到 partition1 -->
<parameter>-r</parameter> <!-- 指定部署模式 -->
<parameter>-client</parameter> <!-- 所需的参数 -->
</parameters>
</task>
在上面的部分(步骤 2)中,您需要指定您用来添加到控制器的映像。在上面的示例中,3718Plain 用于映像。
<!-- 步骤 3 个性化 sysprep.inf 文件 -->
<task description="Set sysprep custom info in the sysprep.inf file">
<command>/bmonitor/bmstrrep.exe</command>
<parameters>
<parameter>\device\harddisk0\partition1\sysprep\sysprep.inf</parameter>
<parameter>^ProductKey^</parameter> <!-- 键(要在 sysprep.inf 文件中搜索的 ProductKey)
<parameter>"$ProductKey$"</parameter> <!-- 要替换的值,一定要放在引号中>
<parameter>^OEMDuplicatorstring^</parameter>
<parameter>"$OEMDuplicatorstring$"</parameter>
<parameter>"$CLUSTER_COMMAND_MOUNT$"</parameter>
<parameter>^CLUSTER_COMMAND^</parameter>
<parameter>"$CLUSTER_COMMAND$"</parameter>
<parameter>^AssignDriveLetters^</parameter>
<parameter>"$AssignDriveLetters$"</parameter>
<parameter>^FileShare^</parameter>
<parameter>"$FileShare$"</parameter>
</parameters>
</task>
在上面的部分(步骤 3)中,您需要指定您在 sysprep.inf 中使用的变量名称。注意,变量包含在 ^xxx^ 中,而它所附带的要用于替换的值在引号($xxxx$)中。
用于部署单个节点集群的样本 XML 文件在附录 D 中。这个示范文件还将在磁盘上创建文件共享。
6. 创建序列文件的工作模板
ADS 中的工作模板提供了一种方法,可以用来定义和存储您计划多次对一个设备(或一组设备)运行的任务说明。您可以使用 adsjobtemplate 命令行工具或 ADS 插件来创建工作模板。您将需要把这个工作模板与您刚创建的用于部署操作系统和配置服务器集群的 XML 文件相关联。在创建了工作模板创建好之后,当您每次需要对任何设备运行工作时,您都可以使用它。例如,您可以使用带有创建开关的集群命令来首次创建单个节点集群。如果集群创建完毕,您就可以修改这个命令来将节点添加到下一个系统,它是您需要在操作系统部署之后加入这个集群的系统。
要使用 ADS 的用户界面添加工作模板:打开 ADS.MSC
查看全尺寸图片。
右键单击“工作模板”并单击“添加”。这将调用“添加工作模板向导”来指导您完成整个过程。
7. 为所需的设备在 ADS 数据库中创建和存储与变量相关的值
现在,您将需要在控制器数据库中为每个设备定义和存储变量。当对设备运行值时,这些值将用 sysprep.inf 文件中的值进行代替。您可以通过 ADS 或命令行界面来定义变量。要通过 ADS 插件添加,可以双击设备并在弹出的窗口中单击“用户”。单击“添加”来添加用在序列文件和 sysprep.inf 中的变量名,并且使其与某个值相关联。
查看全尺寸图片。
查看全尺寸图片。
单击“用户”,然后单击“添加”。