对 Apache Ant 的任务进行建模

要在工作流程中使用 Apache Ant 任务,必须创建用于表示那些任务的自动化签名。每一个自动化签名都会将拓扑中的信息(例如位置、用户名和密码)映射至 Ant 任务中的参数。

开始之前

部署自动化需要 IBM® Rational® Software Architect Extension for Deployment Automation Planning

过程

  1. 创建自动化签名拓扑:
    1. 在“部署”透视图中,单击文件 > 新建 > 拓扑
    2. 在“新建拓扑”窗口中的类别下面,单击基本部署,然后在模板下面单击空白自动化签名拓扑
    3. 为新的自动化签名拓扑提供一个名称、名称空间和源文件夹。 按照约定,自动化签名拓扑会转至 operations 源文件夹和缺省(空)名称空间。
    4. 单击完成
  2. 在自动化签名拓扑中,对用于运行自动化任务的 IT 系统进行建模。
    自动化签名是任务的抽象描述,而不是计划要在特定的系统上运行任务。因此,自动化签名拓扑只包括该任务的必要单元。请遵循适用于自动化签名拓扑的下列准则:
    • 使用概念单元。
    • 包括任务安装、卸载或修改的单元。
    • 只包括任务影响、需要或使用其中信息的单元。仅当另一个拓扑对自动化签名拓扑中的每一个单元都有匹配单元时,自动化签名才与该拓扑相匹配。
    • 从单元中移除属性值。如果指定自动化签名拓扑中的属性值,那么自动化签名将只与具有匹配的属性值的拓扑相匹配。
      提示: 要同时清除或编辑单元上的几个属性,请打开单元编辑器。右键单击该单元,然后单击在单元编辑器中打开
    • 使用适用于任务的最抽象类型的单元。例如,如果某个自动化任务只能在任何 Linux 操作系统上运行,请使用通用 Linux 单元,而不要使用特定类型的 Linux 操作系统单元。如果该任务只能在特定类型的操作系统上运行,请使用特定的操作系统单元。

    此拓扑不需要进行详细说明;它必须仅指定系统的基础,特别是该任务安装、卸载或修改的组件。例如,简单任务可能使用 Ant 命令 unzip 来抽取 Apache Tomcat Web 服务器的必要文件。在这种情况下,拓扑会显示该服务器的组件以及用于运行该服务器的操作系统,如下图中所示:

    已在通用操作系统上安装了 Apache Tomcat 的启动中自动化签名拓扑
    这些单元中的一部分包含错误,这是因为该拓扑未指定该任务对这些单元的影响方式。这些错误将在接下来的几个步骤之后得到解决。

  3. 设置自动化签名拓扑中所有单元的安装状态:
    • 在任务开始转为 Installed 之前,设置任务不影响的单元或假设为已安装的单元。
    • 将任务安装或修改的单元设置为 To be installed
    • 将任务卸载或移除的单元设置为 To be uninstalled
    如以下示例中所示,如果任务安装 Web 服务器,请将新安装的单元设置为 To be installed 并将已安装的单元设置为 Installed
    已将 Tomcat 单元设置为 To be
installed 的自动化签名
  4. 在选用板中,从公共工具抽屉的操作模板组中,将 Ant 操作单元添加至拓扑。
  5. 选择拓扑之后,在“属性”视图中签名选项卡的底部,将安装状态为 To be installedTo be uninstalled 的所有单元添加至待发布列表。 现在,自动化签名指定受该任务影响的单元,并且单元上的错误已消失。也会将待发布列表中的单元添加为 Ant 操作单元的成员。
  6. 在“属性”视图的“签名”选项卡的名称字段中,指定自动化任务的标识。 请不要在名称中包含空格。 将自动化签名添加到工作流程中时,此名称会标识该自动化签名。
  7. 命令字段中,指定 Ant 任务的代码。 例如,要使用 Ant unzip 命令来抽取 Tomcat 安装文件,您可以使用下列代码:
    <unzip src="" dest="">
      <cutdirsmapper dirs="1"/>
    </unzip>
  8. 将该命令中的属性值替换为参数。 这些参数必须以美元符号 ($) 开头并且使用花括号将名称括起来。例如,用于抽取 Tomcat 文件的命令可能与下列命令相似:
    <unzip src="${tomcatInstallFile}"
      dest="${tomcatInstallLocation}">
      <cutdirsmapper dirs="1"/>
    </unzip>
  9. 从自动化签名中的命令定义每一个参数:
    1. 在“属性”视图的“签名”选项卡的参数部分中,单击添加参数
    2. 指定参数的名称。 请不要包括美元符号 ($) 或花括号。
    3. 在拓扑中选择要将该参数绑定至的属性,然后单击完成

      例如,如果参数表示某个文件或文件夹的位置,请将参数绑定至相应文件或文件夹单元的位置属性。请注意,不是将参数绑定至属性的当前值,而是绑定至属性本身。当您准备好开始运行任务时,请将此自动化签名添加至已绑定至更具体拓扑的工作流程;该具体拓扑中相应属性的值将用作参数的值。

      如果值是常量,那么您可以为参数指定一个字面值。还可以将参数留空,以便您可以在将自动化签名添加到自动化工作流程时指定一个值。

  10. 如有必要,请为 Ant 任务指定缺省参数的值。
    • 如果自动化签名的命令使用标准 Ant 命令,那么您不需要指定 classnameclasspathHomejavaArchive 参数的值。
    • 如果该命令使用 Ant 命令的第三方库,那么必须指定下列参数:
      classname
      命令的类名称
      classpathHome
      用于查找该类的类路径
      javaArchive
      命令的 JAR 文件位置
    其他缺省参数是可选参数:
    antlib
    此参数会向名称空间前缀指定一个前缀,以将此任务中的命令与外部 Ant 文件中的命令区别开。
    namespacePrefix
    此参数会为此 Ant 文件中的此任务指定名称空间前缀。
    subbuild
    选中此复选框以将此任务发布至单独的构建文件。如果不选中此复选框,那么当您发布包含此任务的工作流程时,此任务将出现在主要的 Ant 构建文件中。 如果选中此复选框,那么此任务将出现在独立的构建文件中。
  11. 保存拓扑。

下一步做什么

现在,您可以按照规划自动化任务的工作流中的描述将此库作为任务包括在自动化工作流程中。

反馈