< 上一课 | 下一课 >

课程 2:创建组件进程

组件进程描述组件上运行的自动化任务。组件进程可以部署、安装、卸载和更新组件,也可以运行组件上的其他任务。
有三种类型的进程可用:
  • 通用进程在组件或应用程序的上下文外部运行。
  • 应用程序进程在应用程序的上下文内部运行。在许多情况下,应用程序进程调用组件进程。例如,应用程序进程可调用组件进程来部署这些组件。
  • 组件进程对单个组件运行任务,例如,部署组件、卸载组件或对组件运行配置任务。

进程是步骤及其之间的连接的列表。每个步骤是在目标计算机上运行的一个命令。步骤可处理文件、运行系统命令、下载文件和运行程序。插件会贡献步骤;已提供与许多不同类型的软件配合使用的插件。

每个组件必须至少有一个用来部署或安装该组件的组件进程。在本课程中,您将为这三个组件各创建一个部署进程。稍后,您将创建一个调用这些组件进程来部署每个组件的应用程序进程。

为 Web 组件创建组件进程

Web 组件的组件进程将下载组件工件的最新版本并将那些工件放置在正确的文件夹中。
执行以下步骤以创建用于部署 Web 组件的组件进程:
  1. 从“组件”选项卡中,单击 JPetStore-WEB 组件。
  2. 单击进程,然后单击创建新进程
  3. 在“创建新进程”窗口中,将名称指定为部署 Web 组件
  4. 进程类型列表中,选择部署 对于卸载或配置组件的进程,此列表具有其他选项。
  5. 接受其他属性的缺省值,然后单击保存
  6. 从进程列表中,选择新进程。 将在进程编辑器中打开该进程。此编辑器以图形的形式将进程中的步骤显示为流程图。启动完成框表示进程的开始和结束。您将在此编辑器中将步骤添加到进程,并在启动完成步骤之间链接这些步骤以显示它们的顺序。
  7. 添加一个步骤来清除工作目录中的所有文件。 该进程在工作目录中运行。要确保您在 Web 组件中使用的是文件的最新版本,请运行一个命令来清除工作目录:
    1. 在进程编辑器左边的可用插件步骤下,展开实用程序 > FileUtils 可用插件步骤菜单显示可用步骤。可以浏览这些树以查找步骤,也可以在窗口顶部的搜索框中输入要查找的内容。
    2. FileUtils 树项下,单击删除文件和目录步骤并将其拖至进程编辑器。 将打开“编辑属性”窗口,该窗口中显示了此步骤的属性。其中某些属性是此步骤所独有的,而其他属性对于所有步骤都相同。
    3. 名称字段中,将名称指定为清除工作目录
    4. 基本目录字段中,指定单个句点 (.)。
    5. 包括字段中,指定一个星号 (*)。
    6. 接受其他属性的缺省值,然后单击保存
    新步骤以框的形式显示在进程编辑器中。稍后,将此步骤连接至进程中的其他步骤。进程编辑器类似于下图:
    流程中具有一个步骤的新进程
  8. 添加一个步骤来下载组件工件的最新版本。 下载工件步骤用在大多数部署进程中。此步骤将组件工件的指定版本下载到目标计算机。运行该进程时,您将指定是使用组件工件的最新版本还是特定版本。
    1. 可用插件步骤下,展开存储库 > 工件 > IBM UrbanCode Deploy,然后将下载工件步骤拖至进程编辑器。
    2. 在“编辑属性”窗口中,接受缺省值,然后单击保存
  9. 添加一个步骤来从服务器中移除旧 Web 内容:
    1. 展开实用程序 > FileUtils,然后将另一个删除文件和目录步骤拖至进程编辑器。
    2. 在“编辑属性”窗口中,将名称指定为移除旧内容
    3. 基本目录字段中,指定以下目录:
      webapps/JPetStore
    4. 包括字段中,指定以下目录:
      images
    5. 工作目录字段中,指定以下变量:
      ${p:environment/tomcat.home}
      此变量表示 Tomcat Web 服务器的主文件夹。您稍后将为此变量指定值。
    6. 接受其他字段中的缺省值,然后单击保存
  10. 添加一个步骤来将新内容部署到服务器。 此步骤将组件工件复制到应用程序服务器。
    1. 展开实用程序 > FileUtils,然后将移动目录步骤拖至进程编辑器。
    2. 在“编辑属性”窗口中,将名称指定为部署新内容
    3. 源目录字段中,指定单个句点 (.)。
    4. 目标目录字段中,指定以下目录:
      ${p:environment/tomcat.home}/webapps/JPetStore/
    5. 包括文件字段中,指定以下代码:
      images/*
    6. 接受其他字段中的缺省值,然后单击保存
    现在,该进程具有四个步骤,如下图中所示:
    该进程的四个步骤,它们按顺序放置在启动与完成步骤之间

每个步骤的右上角都有两个图标。绿色“编辑”图标 用于打开当您创建该步骤时所打开的“编辑属性”窗口。X 图标 用于删除该步骤。

此外,如果将鼠标悬停在某个步骤上,那么该步骤的中心处会显示一个箭头图标。此图标用来在步骤之间创建链接。

单击该步骤中心处的箭头按钮

  1. 按步骤的运行顺序连接步骤:
    1. 将鼠标悬停在启动步骤上,然后单击箭头图标并将其拖至清除工作目录步骤。 这些步骤之间的箭头表示从一个步骤到另一个步骤的活动流向,如下图中所示:
      将启动步骤连接至清除工作目录步骤的链接
    2. 类似地,将箭头从清除工作目录步骤拖至下载工件步骤。
    3. 将箭头从下载工件步骤拖至移除旧内容步骤。
    4. 将箭头从移除旧内容步骤拖至部署新内容步骤。
    5. 将箭头从部署新内容步骤拖至完成步骤。
    您可以像这些步骤一样按顺序连接步骤,也可以通过创建更多链接以相互并行的方式运行步骤。但是,进程始终以启动步骤开始并以结束步骤结束。此进程中的步骤顺序如下所示:
    1. 启动
    2. 清除工作目录
    3. 下载工件
    4. 移除旧内容
    5. 部署新内容
    6. 完成
  2. 通过单击工具下的保存 图标保存该进程。
完成的 Web 组件的组件进程类似于下图:
完成的组件进程,它移除工件的旧组件并将新版本部署到应用程序服务器

为应用程序组件创建组件进程

应用程序组件由单个 WAR 文件组成。此组件进程将下载 WAR 文件的最新版本,更新该文件中的值,并将该文件部署在应用程序服务器上。
  1. 从“组件”选项卡中,单击 JPetStore-APP 组件。
  2. 单击进程,然后单击创建新进程
  3. 在“创建新进程”窗口中,将名称指定为部署应用程序组件
  4. 进程类型列表中,选择部署
  5. 接受其他属性的缺省值,然后单击保存
  6. 从进程列表中,单击新进程以在进程编辑器中将其打开。
  7. 添加一个步骤来清除工作目录。 与您对 Web 组件执行的操作一样,添加一个名为清除工作目录删除文件和目录步骤,然后在基本目录字段中指定一个句点并在包括字段中指定一个星号。
  8. 添加一个步骤来下载工件。 与您对 Web 组件执行的操作一样,添加一个下载工件步骤并接受缺省属性。
  9. 添加一个步骤来解压 WAR 文件。 必须解压 WAR 文件,以便可以使用数据库连接信息来更新属性文件。
    1. 在步骤列表中,展开实用程序 > FileUtils 文件夹,然后将解压缩步骤拖至进程编辑器。
    2. 将名称指定为解压 WAR
    3. 解压目录字段中,指定以下代码:
      ./JPetStore_expanded
    4. .zip 文件字段中,指定以下文件:
      JPetStore.war
    5. 单击保存
  10. 添加一个步骤来使用数据库的位置更新属性文件:
    1. 在步骤列表中,展开实用程序 > FileUtils 文件夹,然后将更新属性文件步骤添加到进程编辑器。
    2. 将名称指定为更新属性文件
    3. 目录偏置字段中,指定以下文件夹:
      ./JPetStore_expanded/WEB-INF/classes/properties
    4. 属性文件字段中,指定以下文件:
      database.properties
    5. 添加/更新属性字段中,指定以下代码:
      url=${p:environment/db.url}
      此代码将使用数据库的位置来更新属性文件中的 url 属性。代码 ${p:environment/db.url} 是变量,当部署应用程序时,它表示数据库组件的位置。
    6. 单击保存
  11. 添加一个步骤来使用新属性文件更新 WAR 文件。
    1. 从步骤列表中,展开实用程序 > FileUtils 文件夹,然后将创建 .zip 文件步骤添加到进程编辑器。
    2. 将名称指定为更新 WAR
    3. .zip 文件名字段中,指定 JPetStore.war 文件。
    4. 基本目录字段中,指定以下文件夹:
      ./JPetStore_expanded
    5. 包括字段中,指定以下代码:
      **/*
    6. 选中更新现有文件复选框。
    7. 单击保存
  12. 添加一个步骤来启动 Tomcat:
    1. 在步骤列表中,展开应用程序服务器 > Java > Tomcat 文件夹,然后将启动 Tomcat 步骤添加到进程编辑器。 如果此步骤不在树中,请安装 Tomcat 插件,如本教程的先决条件中所述。
    2. 接受缺省名称启动 Tomcat
    3. 启动程序字段中,指定以下代码:
      ${p:environment/tomcat.start}
      此代码是另一个表示启动 Tomcat 的命令的变量。
    4. 启动超时(以秒计)字段中,指定 60 秒。
    5. 端口字段中,指定端口 8080
    6. 单击保存
  13. 添加一个步骤来移除应用程序的所有先前版本:
    1. 在步骤列表中,展开应用程序服务器 > Java > Tomcat 文件夹,然后将取消部署应用程序步骤添加到进程编辑器。
    2. 接受缺省名称取消部署应用程序
    3. Tomcat 管理器 URL 字段中,指定以下代码:
      ${p:environment/tomcat.manager.url}
    4. Tomcat 管理器用户名字段中,指定 Tomcat 服务器的用户名。 您已在配置代理程序和目标系统中指定此用户名及其密码。如果使用了该主题中的代码示例,那么用户名和密码为 tomcatmanager
    5. Tomcat 管理器密码字段中,指定 Tomcat 服务器的密码。
    6. 上下文名称字段中,指定以下上下文名称,包括前面的正斜杠:
      /JPetStore
    7. 单击保存
  14. 添加一个步骤来将已更新的 WAR 文件部署到应用程序服务器:
    1. 在步骤列表中,展开应用程序服务器 > Java > Tomcat 文件夹,然后将部署应用程序步骤添加到进程编辑器。
    2. 接受缺省名称部署应用程序
    3. Tomcat 管理器 URL 字段中,指定以下代码:
      ${p:environment/tomcat.manager.url}
    4. Tomcat 管理器用户名字段中,指定 Tomcat 服务器的用户名。
    5. Tomcat 管理器密码字段中,指定 Tomcat 服务器的密码。
    6. 上下文名称字段中,指定以下上下文名称:
      /JPetStore
    7. WAR 文件路径字段中,指定以下路径:
      ./JPetStore.war
    8. 单击保存
  15. 按以下顺序连接步骤:
    1. 启动
    2. 清除工作目录
    3. 下载工件
    4. 解压 WAR
    5. 更新属性文件
    6. 更新 WAR
    7. 启动 Tomcat
    8. 取消部署应用程序
    9. 部署应用程序
    10. 完成
  16. 取消部署应用程序步骤与部署应用程序步骤之间的链接上的条件标志更改为 both,方法是单击该连接上的绿色复选标记,直到它变成灰色圆圈,如下图中所示:
    单击取消部署应用程序步骤与部署应用程序步骤之间的绿色复选标记以将其变成灰色圆圈
    从一个步骤到另一个步骤的每个连接都有一个条件标志。条件标志指定连接的条件。提供了三个条件标志:
    • 缺省情况下,每个连接上的条件标志设置为 success,由绿色复选标记表示。当步骤成功时,进程将遵循这些连接。
    • 条件标志 fail 由红色短划线 (-) 表示。当步骤失败时,进程将遵循这些连接。
    • 条件标志 both 由灰色圆圈表示。无论步骤成功与否,进程都将遵循这些连接。
    如果未安装应用程序的任何先前版本,那么 Undeploy Application 步骤将失败。在这种情况下,将连接上的条件标志设置为 both 以指示无论该步骤失败或成功,过程都将继续进行。
  17. 保存该进程。
完成的应用程序组件的组件进程类似于下图:
完成的用于部署应用程序的组件进程

为数据库组件创建组件进程

数据库组件的部署进程将使用样本值来更新数据库。
  1. 从“组件”选项卡中,单击 JPetStore-DB 组件。
  2. 单击进程,然后单击创建新进程
  3. 在“创建新进程”窗口中,将名称指定为部署数据库组件
  4. 进程类型列表中,选择部署
  5. 接受其他属性的缺省值,然后单击保存
  6. 从进程列表中,单击新进程以在进程编辑器中将其打开。
  7. 添加一个步骤来下载工件。 与您对 Web 组件执行的操作一样,添加一个下载工件步骤并接受缺省属性。
  8. 添加一个步骤来更新数据库:
    1. 在步骤列表中,展开数据库 > DBUpgrader 文件夹,然后将升级数据库步骤添加到进程编辑器。 如果此步骤不在树中,请安装数据库升级插件,如本教程的先决条件中所述。
    2. 在“编辑属性”窗口的名称字段中,接受缺省值升级数据库
    3. 驱动程序类名字段中,指定以下类:
      com.mysql.jdbc.Driver
    4. 数据库驱动程序 JAR 字段中,指定以下路径:
      lib/mysql-connector-java-5.1.20-bin.jar
      在该组件的源代码中提供了此文件。
    5. URL 字段中,指定以下变量:
      ${p:environment/db.url}
    6. 用户字段中,指定数据库用户的用户标识。 如果您使用了配置代理程序和目标系统中的示例,那么用户标识为 jpetstore
    7. 密码字段中,指定数据库用户的密码。 如果您使用了配置代理程序和目标系统中的示例,那么密码为 jppwd
    8. SQL 文件路径字段中,指定单个句点:.
    9. SQL 文件包括字段中,指定扩展名 *.xml
    10. 当前版本 SQL 字段中,指定以下 SQL 代码:
      SELECT VER FROM DB_VERSION WHERE RELEASE_NAME = ?
    11. 删除版本 SQL 字段中,指定以下 SQL 代码:
      DELETE FROM DB_VERSION WHERE RELEASE_NAME = ?
    12. 更新版本 SQL 字段中,指定以下 SQL 代码:
      INSERT INTO DB_VERSION (RELEASE_NAME,VER) VALUES(?,?)
    13. 单击保存
  9. 按以下顺序连接步骤:
    1. 启动
    2. 下载工件
    3. 升级数据库
    4. 完成
  10. 保存该进程。
完成的数据库组件的组件进程类似于下图:
完成的用于部署数据库的组件进程

课程检查点

在本课程中,您创建了用于部署组件的组件进程。

您可以使用组件进程来使组件上的许多不同任务自动化。但是,无法直接运行组件进程;在大多数情况下,应该将它们添加到应用程序进程。在本教程中的后面部分,您将为这三个组件进程创建应用程序进程。

进程包含插件提供的步骤。 要查看可用插件的列表以及获取有关这些插件和步骤的文档,请参阅 IBM developerWorks:UrbanCode Deploy 插件

< 上一课 | 下一课 >

反馈