创建 AE 模板文件
您可以查找有关作为 AE 脚本输入的虚拟映像模板的信息。
虚拟映像模板文件是提供给“激活引擎”脚本的输入。 它是 XML 文件,包含“激活引擎”准确工作所必须按照的特定结构。 每个模板文件包含两个主部分,即模板设置和模板数据。
模式
以下是一种 XML 模式,用来验证“激活引擎”模板文件:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="template">
<xs:complexType>
<xs:sequence>
<xs:element name="settings">
<xs:complexType>
<xs:sequence>
<xs:element name="logDirectory" type="xs:string" minOccurs="0"/>
<xs:element name="scriptsDirectory" type="xs:string"/>
<xs:element name="extensions" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="extendedTemplate" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="rules">
<xs:complexType>
<xs:sequence>
<xs:element name="section" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="ruleSet" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="0" processContents="lax" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="script" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
模式可以用来验证定制的虚拟映像模板文件。 要验证,请输入:
/usr/sbin/ae包含 -check 标志,并传递模板参数。文档类型描述
DTD 作为模式,可以用来确保虚拟映像模板文件的有效性。 验证“激活引擎”模板的 DTD 如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT template (settings, rules)>
<!ATTLIST template
name CDATA #REQUIRED>
<!ELEMENT settings (logDirectory?, scriptsDirectory, extensions?)>
<!ELEMENT logDirectory EMPTY>
<!ELEMENT scriptsDirectory EMPTY>
<!ELEMENT extensions (extendedTemplate+)>
<!ELEMENT extendedTemplate EMPTY>
<!ELEMENT rules (section+)>
<!ELEMENT section (ruleSet+)>
<!ATTLIST section
name CDATA #REQUIRED
script CDATA #REQUIRED>
<!ELEMENT ruleSet ANY>示例
ae_template.xml 文件的示例如下所示:<?xml version="1.0" encoding="UTF-8"?>
<template name="Default Activation Engine template">
<settings>
<!-- created automatically if it doesn't exist -->
<logDirectory>/var/adm/ras/nim/ae/</logDirectory>
<!-- / is assumed to be / of optical media -->
<scriptsDirectory>/ae/scripts/</scriptsDirectory>
<extensions>
<extendedTemplate>/ae/user_template1.xml</extendedTemplate>
<extendedTemplate>/ae/user_template2.xml</extendedTemplate>
</extensions>
</settings>
<rules>
<section name="network" script="ae_network.sh">
<ruleSet>
<address>9.3.148.163</address>
<mask>255.255.254.0</mask>
<gateway>9.3.148.0</gateway>
<routes>default:0:9.3.149.1</routes>
</ruleSet>
</section>
<section name="accounts" script="ae_accounts.sh">
<ruleSet>
<username>scott</username>
<groups>admin,sys,system</groups>
<admin>true</admin>
<home>/home/bear</home>
</ruleSet>
<ruleSet>
<username>eric</username>
<groups>cron,security</groups>
<rlogin>true</rlogin>
<home>/home/misty</home>
</ruleSet>
</section>
<section name="filesystems" script="ae_filesystems.sh">
<ruleSet>
<mountpoint>/usr/blah</mountpoint>
<type>jfs2</type>
<size>3834383</size>
<efs>yes</efs>
<vix>no</vix>
</ruleSet>
<ruleSet>
<mountpoint>/usr/bleh</mountpoint>
<type>jfs</type>
<size>9595999</size>
<efs>no</efs>
<volume_id>Bleh</volume_id>
</ruleSet>
</section>
</rules>
</template>
模板设置
模板设置是特殊模板文件的专用规则,包含以下项目:
logDirectory:是包含脚本日志的目录。 每个脚本都包含一个单独日志文件。 例如,如果脚本称为ae_network_extension.sh,那么日志文件是ae_network_extension.log,且放置在logDirectory规则指定的目录中。 如果当“激活引擎”开始执行时,logDirectory不存在,那么运行 mkdir 命令以创建该目录。scriptsDirectory:是定义脚本位置的目录。 脚本包含有关模板中每个规则如何必须链接到特殊脚本,以及如何必须运行脚本以应用规则的信息。 提供的缺省脚本是ae_network.sh、ae_accounts.sh和ae_filesystems.sh。 这些脚本包含基本功能,且必须展开以供更高级的使用。 假设scriptsDirectory元素中指定的路径的 root 是包含模板的已安装光学介质的 root。extensions:是所有用户创建的且“激活引擎”必须处理的虚拟映像模板的列表。 指定必须按顺序处理的模板,并包含完整文件路径。 如果进程没有任何用户扩展,那么不需要此列表。
注: 模板设置的参数是不可定制的,因为它是由激活引擎解释的。
部分和 RuleSet
虚拟映像模板文件的规则是重要部分,其中存在所有系统定制参数。 它细分为数个部分,即规则的类别。 例如,网络、用户账户和文件系统拥有单独的部分。 部分是不同组系统参数的抽象分隔符。 它们将脚本链接到 RuleSet。 每个部分包含一个脚本字段,其中定义定制配置的代码,并包含 RuleSet 部分中提供的规则。
RuleSet 是细分的部分。 它包含一组参数,必须传递这些参数以用于“部分”脚本的单个执行。 每个 RuleSet 都意味着所链接脚本的其他不同执行。 在一个部分中,如果您想要多次执行脚本,那么必须在文件系统部分中包含多个 RuleSet。