创建 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.shae_accounts.shae_filesystems.sh。 这些脚本包含基本功能,且必须展开以供更高级的使用。 假设 scriptsDirectory 元素中指定的路径的 root 是包含模板的已安装光学介质的 root。
  • extensions:是所有用户创建的且“激活引擎”必须处理的虚拟映像模板的列表。 指定必须按顺序处理的模板,并包含完整文件路径。 如果进程没有任何用户扩展,那么不需要此列表。
注: 模板设置的参数是不可定制的,因为它是由激活引擎解释的。

部分和 RuleSet

虚拟映像模板文件的规则是重要部分,其中存在所有系统定制参数。 它细分为数个部分,即规则的类别。 例如,网络、用户账户和文件系统拥有单独的部分。 部分是不同组系统参数的抽象分隔符。 它们将脚本链接到 RuleSet。 每个部分包含一个脚本字段,其中定义定制配置的代码,并包含 RuleSet 部分中提供的规则。

RuleSet 是细分的部分。 它包含一组参数,必须传递这些参数以用于“部分”脚本的单个执行。 每个 RuleSet 都意味着所链接脚本的其他不同执行。 在一个部分中,如果您想要多次执行脚本,那么必须在文件系统部分中包含多个 RuleSet。