示例:在 Rational Build Forge 中自动执行简单任务

此示例显示可以如何使用 部署规划工具Rational® Build Forge® 中自动执行简单任务。

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

概述

安装 Web 服务器和 Web 应用程序是您可以使用 部署规划工具 自动执行的一项简单任务的示例。 您可以创建用于通过抽象术语来描述任务中的每一个步骤的自动化签名,而不必引用特定的计算机系统。 然后,您可以将那些自动化签名应用于一个或多个拓扑以在不同的系统上运行该任务。自动化签名使用您对其应用自动化签名的每一个拓扑中的信息;通过这种方式,您可以编写自动化代码一次并在不同的系统上使用该代码。

此示例使用 Web 应用程序、Tomcat Web 服务器和 Linux 操作系统的简单方案,如以下拓扑中所示。此方案类似于样本部署自动化拓扑和工作流程样本中使用 Rational Build Forge 执行自动化的示例。

含有 Web 应用程序、Web 服务器和 Linux 操作系统的简单系统

您可以在一个自动化任务中安装 Web 服务器和 Web 应用程序,但为了获取最佳复用效果,您可以将这两个任务分离。将任务组织到各个模块部分中可使该任务更灵活。例如,如果使用不同的自动化任务来分别安装该服务器和该应用程序,那么您可以运行第二个任务两次以在同一服务器上安装两个应用程序。因此,规划此自动化任务的最佳方式是将该任务分成两个步骤。每一个步骤都由用于执行该任务的 Rational Build Forge 中的一个库以及用于在工作空间中表示该任务的相应自动化签名来表示。自动化签名包含自动化签名拓扑,您可以将自动化签名拓扑应用于工作空间中的拓扑,以便您可以在该拓扑上运行自动化任务。

在本示例中,第一个自动化签名会在 Linux 系统上安装 Web 服务器,如下图中所示。自动化签名拓扑会显示与该任务相关的单元:新的 Web 服务器、操作系统以及用于执行该任务的管理员用户。此自动化签名拓扑还包括 Web 服务器的安装文件。安装状态会指示该任务所更改的单元以及未更改的单元;在这种情况下,会将新的 Web 服务器单元设置为 To be installed,并将其他单元(假设在任务运行之前,所有这些单元都已显示)设置为 Installed

用于显示正在 Linux 系统上进行安装的 Web 服务器的自动化签名拓扑

第二个自动化签名会在 Tomcat 服务器上安装 Web 应用程序,如下图中所示。自动化签名拓扑会显示安装状态为 To be installed 的新 Web 应用程序以及已假设为待安装且安装状态为 Installed 的其他单元,包括用于表示要安装的 Web 应用程序的文件单元。

用于显示正在 Linux 系统上的 Web 服务器上进行安装的 Web 应用程序的自动化签名拓扑

然后,您可以将这些自动化签名应用于用于表示 IT 系统的拓扑。例如,以下拓扑表示同一 IT 系统中的两台计算机,每一台都具有不同的硬件和不同的 Linux 分发:
两个托管堆栈
您可以通过添加与自动化签名拓扑中的单元相匹配的单元来指示您要在这些系统上安装 Web 服务器和 Web 应用程序。在这种情况下,您可以将一个或多个 Web 服务器单元和 Web 应用程序单元添加至此拓扑,并将这些单元的安装状态设置为 To be installed。您可以将多个 Web 服务器和 Web 应用程序添加至此拓扑,这是因为自动化签名可复用。以下拓扑显示每一个系统上的新 Web 服务器以及每一个新 Web 服务器上的两个新 Web 应用程序。
含有要安装的 Web 服务器及 Web 应用程序的两个托管堆栈
此拓扑缺少在自动化签名拓扑中指定的下列信息:
  • 用于表示 Web 服务器安装文件的单元
  • 用于表示 Web 服务器安装位置的单元
  • 用于表示 Web 应用程序安装文件的单元
在这种情况下,您可以将这些单元添加至操作系统单元,如以下自动化签名拓扑中所示。
含有要安装的应用程序及服务器的两个托管堆栈,并且其单元表示应用程序和服务器的安装文件

接下来,您可以创建用来将自动化签名应用于此拓扑的工作流程,如下图中所示。工作流程会将拓扑与一个或多个自动化签名相关联,以便您可以在该拓扑上的自动化签名中运行任务。 在这种情况下,工作流程包含用于安装 Web 服务器的两份自动化签名副本和用于安装 Web 应用程序的四份自动化签名副本。自动化签名的每一个实例都已设置成使用拓扑中的信息,例如两个计算机系统的主机名、用户名和密码。

包含两个自动化签名的六个实例且具有与拓扑的绑定的工作流程

设置自动化任务

使用 部署规划工具 自动执行任务中的第一步是创建可复用的自动化签名。每一个自动化签名及其相应的自动化定义都表示要在 IT 系统上执行的一个任务,例如安装、卸载或配置软件组件。这些任务是模块;它们可以应用于满足自动化签名中的先决条件的任何系统。
  1. 准备自动化环境以运行自动化任务。 请参阅为自动化任务准备环境
  2. 安装 Rational Build Forge 客户机。请参阅安装 Rational Build Forge 客户机
  3. 连接至 Rational Build Forge 控制台。 请参阅将客户机连接至 Rational Build Forge
  4. Rational Build Forge 控制台中创建用于表示要执行的任务的库。
    使用此示例时,您可以创建两个库:
    • 第一个库名为 Install Tomcat on Linux 并且包含下列命令以抽取 Tomcat 文件:
      cd /opt/tomcat/
      tar -xzf /opt/tomcat/apache-tomcat-5.5.27.tar.gz
    • 第二个库名为 Install web application on Tomcat 并且包含下列命令以复制 Web 应用程序 WAR 文件和重新启动服务器:
      cp /home/systemuser/HelloWorldWeb.war /opt/tomcat/webapps/
      /opt/tomcat/apache-tomcat-5.5.27/bin/shutdown.sh
      /opt/tomcat/apache-tomcat-5.5.27/bin/startup.sh
  5. 将命令中的文件名、文件夹名称、登录信息及其他变量替换为参数;为每一个参数名添加美元符号 ($) 作为前缀。您可以根据自己的需要具有任意多的参数,并且您可以在不同的命令中复用参数。
    例如,命令可能与此命令相似:
    cd $TomcatDir
    tar -xzf $TomcatFile
    cp $WARFile $TomcatDir/webapps/
    $TomcatDir/apache-tomcat-5.5.27/bin/shutdown.sh
    $TomcarDir/apache-tomcat-5.5.27/bin/startup.sh
    库与下列内容相似:
    库中的步骤,已将变量替换为参数
  6. 保存库。
  7. 为每一个库创建自动化签名,并从该库中导入参数:
    1. 通过单击文件 > 新建 > 拓扑,然后单击基本部署 > 空白自动化签名拓扑来创建新的自动化签名拓扑。
    2. 为自动化签名拓扑提供名称、位置和名称空间。 按照约定,自动化签名会转至项目的 operations 源文件夹中。
    3. 在“属性”视图中,单击创建自动化签名
    4. 使用与库相同的名称来命名新的自动化签名。
    5. 单击发现自动化定义,并导入库中的参数。
    6. 单击完成
  8. 在自动化签名拓扑中,创建用于表示任务所影响的系统的单元或在该任务期间进行交互的单元。

    自动化签名拓扑仅显示该任务的相关详细信息。自动化签名拓扑中指定的每一部分信息也必须在用于运行该任务的拓扑中指定;因此,仅指定必要信息非常重要。

    对于第一个任务“在 Linux 系统上安装 Tomcat”,重要的单元如下所示:
    • 自动化任务所安装的新 Tomcat Web 服务器
    • 将在其中安装服务器的操作系统
    • 用于执行该任务的管理员
    • 服务器的安装文件
    下图显示了包含这些单元的自动化签名拓扑:
    Linux 系统和 Web 服务器单元
    这些单元为任务提供了所有必要信息。例如,安装文件单元是必要单元,这是因为它的 URI 属性为 TomcatFile 参数提供 Tomcat 安装文件的位置。 管理员用户提供用户名和标识,自动化环境使用该用户名和标识登录系统和运行命令。

    此自动化签名拓扑为任务提供了模式和先决条件。通过这种方式,您只能在具有与自动化签名拓扑中的单元相匹配单元的拓扑上使用此自动化签名。

    对于第二个任务“安装 Web 应用程序”,下列单元包括在自动化签名拓扑中:
    • 自动化任务所安装的新 Web 应用程序
    • 在其中安装应用程序的 Web 服务器
    • 在其中运行任务的操作系统
    • 用于执行该任务的管理员
    • 新 Web 应用程序的安装文件
    下图显示了包含这些单元的自动化签名拓扑:
    Web 服务器单元上的 Web 应用程序单元
  9. 设置每一个单元的安装状态以反映自动化任务对其产生的影响:
    • 如果单元在任务之前和期间显示,请将安装状态设置为 Installed
    • 如果自动化任务安装单元,请将安装状态设置为 To be installed
    • 如果自动化任务卸载单元,请将安装状态设置为 To be uninstalled

    在第一个任务“在 Linux 系统上安装 Tomcat”中,任务会安装 Web 服务器单元,所以此单元的安装状态为 To be installed,如下图中所示。所有其他单元都假设在任务运行之前显示,包括操作系统、管理员、安装文件夹和安装文件。为简单起见,此自动化签名假设已创建安装文件夹并且已将 Web 服务器的安装文件下载至系统;更高级的自动化任务可能包括用于创建必要文件夹和下载安装文件的步骤。

    新 Web 服务器单元已设置为 To be installed,其他单元已设置为 Installed

    在第二个任务“在 Web 服务器上安装 Web 应用程序”中,Web 服务器的安装状态为 Installed,并且新 Web 应用程序的安装状态为 To be installed

    新 Web 应用程序单元已设置为 To
be installed

  10. 在“属性”视图中签名选项卡的单元下面,选择将每一个自动化签名与相应的拓扑进行匹配时要使用的单元。在每一个示例自动化签名中,选择安装状态为 To be installed 的一个单元,如下图中所示。
    待发布单元列表中的新 Web 服务器单元

    这个单元列表为 部署规划工具 提供了起始点。 规划在拓扑上运行自动化任务时,您可以将要在该拓扑中更改的单元标记为 To be installed部署规划工具 会在自动化签名的待发布列表中查找匹配的单元。大部分时候,此列表中的单元是安装状态为 To be installedTo be uninstalled 的单元。

  11. 仅指定关于单元的已知信息。

    您在自动化签名拓扑中指定的任何属性值都必须在用于运行自动化任务的拓扑中具有相同值。因此,请始终为自动化任务仅指定相同值。

    在本示例中,只有所指定的属性值是管理员的用户名,该用户名在大部分 Linux 系统上是“root”。 所有其他属性值都留空。例如,如果为 Linux 操作系统的主机名指定一个值,那么自动化任务只能在具有该主机名的系统上运行。如果为 Web 服务器指定安装文件夹,那么始终将该 Web 服务器安装到该文件夹。

    通过这种方式来保持未指定值可能会导致自动化签名拓扑中发生错误、警告或参考消息。 您可以忽略这些问题,这是因为将此自动化签名与拓扑进行匹配时,您可以使用该拓扑中的属性值。

  12. 在“属性”视图中,将从库导入的参数绑定至单元上的相应属性。
    例如,第一个自动化签名包含两个参数:
    • TomcatDir,用于表示在其中安装 Tomcat 的文件夹
    • TomcatFile,用于表示 Tomcat 的安装文件
    在这种情况下,请将 TomcatDir 参数绑定至文件夹单元的 URI 属性;将 TomcatFile 参数绑定至 Tomcat 服务器单元的 installedLocation 属性,如下图中所示。
    设置参数的绑定

    再次,不在自动化签名拓扑中指定这些参数的值。将此自动化签名与拓扑进行匹配时,自动化签名会使用该拓扑中相应属性中的值。

    其他自动化签名包含几个相同的单元,新单元表示要安装的 WAR 文件和 Web 应用程序,如下图中所示。

    用于安装 Web 应用程序的自动化签名

  13. 设置自动化签名的自动化参与者,该自动化参与者表示用于运行自动化任务的凭证。在本示例中的每一个自动化签名内,管理员用户都是一个自动化参与者。
  14. 保存自动化签名。

通过创建工作流程来将任务应用于拓扑

既然您具有用于表示任务的自动化签名,那么您可以将这些自动化签名应用于拓扑以运行任务。 您可以创建工作流程,该工作流程是要应用于特定拓扑的自动化签名的已排序列表。

  1. 创建用于表示在其中运行该任务的 IT 系统的当前状态的拓扑。

    在本示例中,拓扑的外观可能与下图类似:

    用于运行任务的硬件和操作系统
    在此拓扑中,所有重要属性均已指定。例如,指定了管理员用户的用户名和密码,也指定了相关文件及文件夹的位置。此外,所有单元的安装状态都为 Installed

  2. 将单元添加至该拓扑以表示对系统所做的更改。

    在本示例中,您可以通过在自动化签名中添加与待发布列表中的单元相匹配的单元,在此系统上安装 Web 服务器和 Web 应用程序,如下图中所示。

    已添加了要安装的单元的拓扑

    请注意,这些新 Web 服务器和新 Web 应用程序单元已设置为 To be installed。这些单元以及拓扑中的其余单元必须与自动化签名拓扑中的单元相匹配。

  3. 保存拓扑。
  4. 在“属性”视图的工作流程创建选项卡上,单击分析拓扑以获取可能的自动化签名匹配项。此选项卡会显示拓扑中的单元表以及它们与自动化签名是否匹配,如下图中所示。 绿色的单元受此任务影响;在这种情况下,受影响的单元就是该任务安装的单元。其他单元通过提供诸如参数值等信息来支持该任务。
    “工作流程创建”选项卡,用于显示自动化签名与该拓扑之间相匹配的单元
  5. 协调工作空间中拓扑与自动化签名之间的差异。有关更多信息,请参阅将自动签名与拓扑匹配时的常见错误
  6. 将拓扑与一个或多个自动化签名相匹配之后,请单击创建自动化工作流程。该工作流程表示要在 IT 系统上执行的一系列任务,以将其转换为您在拓扑中进行建模的内容。
  7. 设置每一个自动化签名的参数值,如下图中所示。如果在自动化签名中指定了值,那么您可以使用那些值;否则,您可以指定新值或使用拓扑中的值。在本示例中,已在拓扑的属性和工件中指定了参数值。
    用于显示两个自动化签名(已应用于拓扑)的实例的新自动化工作流程
  8. 设置工作流程的参数。您可以将这些工作流程级别的参数用作自动化签名中参数的值。
  9. 保存工作流程。
  10. 当工作流程准备好运行时,按照将工作流发布至 Rational Build Forge中的描述来发布该工作流程并运行所产生的项目。
  11. 因为自动化签名可复用,所以您可以创建更多拓扑并将自动化签名也应用于那些拓扑。

反馈