ZENworks Configuration Management 可让您创建不同类型的分发包,如 Windows 分发包、“文件”分发包、“指令”分发包和“映像”分发包。每种分发包都有自己的一组数据和配置设置。由于在命令行中以参数形式传递数据过于复杂,zman 实用程序使用 XML 文件作为输入来创建分发包。要使用 zman 命令行实用程序创建分发包,必须已通过“ZENworks 控制中心”创建了相同类型的分发包,并将其导出到 XML。有关使用“ZENworks 控制中心”创建分发包的详细信息,请参见部分 2.0, 创建分发包。您可以将导出的 XML 文件用作模板,使用 zman 来创建分发包。
例如,您可以将通过“ZENworks 控制中心”创建的“文件”分发包导出到 XML 文件,并通过 zman 使用此文件来创建另一个“文件”分发包。
分发包可以包含相关联的文件内容。例如,要安装的 MSI 文件就是与“Windows MSI 分发包”关联的文件内容。
分发包还可以与其他分发包相依。
要使用 zman 命令行实用程序创建分发包,请查看以下各节:
在“ZENworks 控制中心”内创建分发包。
例如,使用“ZENworks 控制中心”创建一个名为 google 的“Web 应用程序”分发包,用于启动 Google 网站。
使用以下命令将分发包导出到 XML 文件:
zman bundle-export-to-file 分发包名称 分发包文件名.xml
例如,使用 zman bundle-export-to-file google google.xml 命令可以将 google 分发包导出到 google.xml。
如果要使用新数据创建新分发包,请继续步骤 3。如果要使用与 google 分发包相同的数据创建新分发包,请跳到步骤 4。
根据需要修改 XML 文件。
例如,在 XML 文件的 Launch ActionSet 中的 Launch URL Action 这一部分,将 <URL> 的值从 http://www.google.com 更改为 http://www.yahoo.com,如下所示。
<ns2:ActionSets>
<Id>104e5d74804052eb7ddc4a2f54358d97</Id>
<Type>Launch</Type>
<Version>1</Version>
<Modified>false</Modified>
<Data>
<ns1:Launch/>
</Data>
<Actions>
<Id>2ef5c645774759e9868ba2c157301949</Id>
<Type>Launch URL Action</Type>
<Data>
<ns1:LaunchUrlActionData>
<URL>http://www.yahoo.com</URL>
<WaitForExit>false</WaitForExit>
</ns1:LaunchUrlActionData>
</Data>
<ContinueOnFailure>false</ContinueOnFailure>
<Enabled>true</Enabled>
<Properties />
</Actions>
</ns2:ActionSets>
使用以下命令创建新的分发包:
zman bundle-create 新分发包名称 分发包 xml 文件名.xml
例如,要创建 yahoo 分发包,请在控制台提示符处输入 zman bundle-create yahoo google.xml 命令。
在“ZENworks 控制中心”内创建两个分发包。
例如,使用“ZENworks 控制中心”创建名为 officeXP 和 officeXPSP1 的两个 MSI 应用程序分发包。officeXP 分发包会通过 MSI 安装 Microsoft Office XP。officeXPSP1 分发包会安装 Microsoft Office XP 的 Service Pack 1。在 officeXP 分发包中,添加“安装分发包”操作以安装 officeXPSP1。
使用以下命令将与另一个分发包相依的分发包导出到 XML 文件:
zman bundle-export-to-file 分发包名称 分发包文件名.xml
这会创建分发包文件名.xml 和分发包文件名_ActionContentInfo.xml 这两个文件。
例如,使用 zman bundle-export-to-file officeXP officeXP.xml 命令将 officeXP 分发包导出到 officeXP.xml。即会创建 officeXP.xml 和 officeXP_ActionContentInfo.xml 文件。
xml 格式模板的示例(WindowsMSIBundle.xml 和 ActionInfo.xml)可从 Linux 服务器上 /opt/novell/zenworks/share/zman/samples/bundles 中及 Windows 服务器上 %ZENWORKS_HOME%\Novell\Zenworks\share\zman\samples\bundles 中取得。有关 ActionContentInfo.xml 的详细信息,请参见部分 2.5.3, 了解 zman 分发包 XML 文件格式。
如果要使用新数据创建新分发包,请继续步骤 3。如果要使用与 officeXP 分发包相同的数据创建新分发包,请跳到步骤 4。
根据需要修改 officeXP.xml 和 officeXP_ActionContentInfo.xml 文件。
例如,要创建用于安装 ApplicationX 及其支持包的新分发包,请执行以下操作:
在 officeXP_ActionContentInfo.xml 文件中,将对 officeXP.msi 的所有参照都改为 ApplicationX.msi。
创建另一个名为 ApplicationX-SP1 的分发包,用于安装 Application X 的支持包。
在 officeXP_ActionContentInfo.xml 中,将相依 OfficeXPSP1 分发包的路径改为 ApplicationX-SP1,以便同时安装 ApplicationX 及其支持包。
officeXP_ActionContentInfo.xml 的示例如下:
<ActionInformation>
<ActionSet type="Install">
<Action name="Install MSI" index="1">
<Content>
<ContentFilePath includeAllFilesinFolder="false"
includeAllFilesinSubFolders="false">E:\files\ApplicationX.msi</ContentFilePath>
</Content>
</Action>
<Action name="Install Bundle" index="2">
<DependentBundlePath>bundlefolder/ApplicationX-SP1</DependentBundlePath>
</Action>
</ActionSet>
<ActionSet type="Uninstall">
<Action name="Undo Install Actions" index="1">
<Content>
<ContentFilePath includeAllFilesinFolder="false" includeAllFilesinSubFolders="false">E:\files\ApplicationX.msi</ContentFilePath>
</Content>
</Action>
</ActionSet>
</ActionInformation>
使用以下命令创建分发包:
zman bundle-create 新分发包名称 分发包 xml 文件名.xml 分发包位置 --actioninfo 分发包名称_ActionContentInfo.xml
如果未指定创建分发包的位置,则分发包默认会在根文件夹(/分发包)中创建。
例如,使用以下命令会在根文件夹(/分发包)中创建名为 ApplicationX 的分发包。
zman bundle-create ApplicationX officeXP.xml --actioninfo officeXP_ActionContentInfo.xml
您也可以指定要在其中创建分发包的文件夹。
例如,使用以下命令会在根文件夹下的/分发包/软件)中创建名为 ApplicationY 的分发包。
文件夹(zman bundle-create ApplicationY officeXP.xml /分发包/软件 --actioninfo officeXP_ActionContentInfo.xml
bundle-export-to-file 命令会将储存于数据库中的分发包信息序列化为 XML 文件。每个分发包所含的操作都会分组到各操作集(如“安装”和“起动”)。导出的分发包 XML 文件包含分发包的各种信息,如 UID、名称、路径、主类型、子类型、类别、系统要求,以及所有操作集及其操作的信息。不包含分发包的设备或用户指派信息,也不包含分发包的附加映像的相关信息。
XML 格式模板的示例 (WindowsMSIBundle.xml),可从 Linux 服务器上 /opt/novell/zenworks/share/zman/samples/bundles 中及 Windows 服务器上 %ZENWORKS_HOME%\Novell\Zenworks\share\zman\samples\bundles 中取得。
注:如果导出的 XML 文件包含扩展 ASCII 字符,则必须在编辑器中使用 UTF-8 编码(而非 ANSI 编码)将其打开,因为 ANSI 编码会将扩展 ASCII 字符显示为乱码。
通过 XML 文件创建分发包时,zman 会使用文件的 <Description>、<SubType>、<Category>、<ActionSets> 和 <SysReqs> 元素中指定的信息。“名称”和“父文件夹”的值取自命令行。其余元素使用默认值。
按照下列指示使用 XML 文件:
如果要创建不含内容或不与其他分发包相依的分发包,只需使用分发包 XML 文件创建分发包。
如果要创建包含内容或与其他分发包相依的分发包,则必须提供另一个 XML 文件(其中包含内容文件或相依分发包的路径),作为 bundle-create 命令的 --actioninfo 选项的参数。
XML 格式模板的示例 (ActionInfo.xml) 可从 Linux 服务器上 /opt/novell/zenworks/share/zman/samples/bundles 中及 Windows 服务器上 %ZENWORKS_HOME%\Novell\Zenworks\share\zman\samples\bundles 中取得。
如果要修改导出的 XML 文件中操作的 <Data> 元素,请确保新数据正确无误且符合纲要。zman 实用程序只会对数据做最基本的验证,并不会检查数据中是否有错误。因此,成功创建的分发包也有可能包含无效数据。在受管设备上部署此类分发包时,操作将会失败。
文件内容或分发包依赖项与 <ActionSet> 中的特定操作相关联。“操作内容信息”XML 文件应包含要与文件内容相关联的文件的路径,以及 <ActionSet> 中操作的索引。
例如,创建“Windows MSI 分发包”时要安装的 MSI 文件与此分发包的“安装”操作集中的第一个“安装 MSI”操作相关联。
<ActionSet> 由 type 属性指定,应与分发包 XML 文件的“操作集”类型相同。
<Action> 元素具有名称属性(此属性可选),目的是为了方便用户理解。
index 属性是必需的。它可以指定内容或依赖项应与之关联的操作。<ActionSet> 中第一个操作的索引值为 1。
每项操作都可以有多个 <Content> 元素,而每个 <Content> 元素都包含一个 <ContentFilePath> 元素。<ContentFilePath> 元素包含要与“操作”关联的文件内容的路径。请确保此文件名与分发包 XML 文件中该操作的 <Data> 元素中指定的文件名相同。
确保 <Content> 元素的顺序与分发包 XML 文件中的顺序一致。例如,Windows MSI 分发包的第一个 <Content> 元素中应指定 MSI 文件,其后的各 <Content> 元素应指定 MST 文件的路径,顺序与该操作的 <Data> 中指定的顺序相同。
创建 Windows MSI 分发包时,可以将 includeAllFilesinFolder 和 includeAllFilesinSubFolders 属性设置为 True,以加入文件夹或子文件夹中的所有文件。通过将 <DependentBundlePath> 元素的值设为另一个分发包路径,可以指定与该分发包相依。指定的分发包路径应当相对于 /分发包,如下所示。
<ActionSet type="Install">
<Action name="Install MSI" index="1">
<Content>
<ContentFilePath includeAllFilesinFolder="false" includeAllFilesinSubFolders="false">E:\files\ApplicationX.msi</ContentFilePath>
</Content>
<Content>
<ContentFilePath includeAllFilesinFolder="false"
includeAllFilesinSubFolders="false">E:\files\ApplicationX_MST1.mst</ContentFilePath>
</Content>
</Action>
<Action name="Install Bundle" index="2">
<DependentBundlePath>bundlefolder/ApplicationX-SP1</DependentBundlePath>
</Action>
</ActionSet>
要获取对象的 UID,请使用 object-get-GUID 命令。下列几种情况下,您必须手动在分发包 XML 文件中编辑对象 UID:
在“已安装分发包”系统要求中,必须在 <SysReqs> 元素下的 <BundleInstalledReq> 元素中更改分发包的路径和 UID。
在“映像”分发包中,必须在“ZENworks 映像”和“多路广播映像集”操作中手动更改包含 .img 文件的服务器 UID。而且,必须在“链接的应用程序分发包”和“多路广播映像集”操作中手动更改链接的应用程序分发包的 UID。请确保链接的分发包已有一个手动创建的附加映像,因为当分发包链接到映像分发包时,系统不会自动创建附加映像。