使用 IBM UrbanCode Deploy 部署 Liberty(第 1 部分)

IBM UrbanCode 提供了一套工具来处理更大型 DevOps 周期的构建、发布和部署阶段。UrbanCode Deploy 处理应用程序部署的自动化。它在敏捷开发期间提供持续交付能力,还提供了生产中所需的审计追踪、版本支持和批准追踪。此文章系列包含两部分,第 1 部分将介绍如何设置单一 Liberty 服务器的部署。

开始之前,请访问 IBM 知识中心内的 IBM UrbanCode Deploy 文档 ,以便安装并设置您的 UrbanCode Deploy 环境。

我使用了 UrbanCode Deploy 6.0.1.4 ,但这些操作说明也适用于更高的版本。 请注意,您需要访问 Rational Common License 服务器来完成安装。 安装 UrbanCode Deploy Liberty 插件 ,该插件是基础 UrbanCode Deploy Server 的一个附加组件。

我介绍的 UCD 对象创建顺序与推荐的路径稍有不同:

Application → Components → Resources/agents → Environments

因此,在将某个组件添加到应用程序后,您可以隔离测试该组件流程。这消除了在测试组件之前创建应用程序流程的需要。

这还让我可以选择将能跨组件重用的属性分组到应用程序属性部分。

UrbanCode Deploy 教程文档 UrbanCode Deploy tutorial documentation 推荐的顺序是创建组件之后再创建应用程序。

1. 创建 UrbanCode Deploy Liberty 应用程序

An UrbanCode Deploy 应用程序 是实现自动化部署所需的组件集合。工件 是实现安装所需要的应用程序文件,组件 封装了安装应用程序所需的工件。

在 UrbanCode Deploy 仪表板上创建 Liberty 应用程序:

1.单击 Create New Application 并为该应用程序提供一个名称,比如 Liberty Profile Application:


example1_1

example1_2
2. 任何可以在多种组件设计之间引用的属性,都可以添加到应用程序属性部分。

我添加了以下属性:

liberty_directory,解析为 Liberty 配置文件安装目录。 liberty_jar_name,解析为安装 JAR 文件的名称。 liberty_profile_directory,解析为 Liberty 配置文件服务器目录的位置。 liberty_serverName,解析为 Liberty 配置文件服务器的名称。 liberty_root,解析为 Liberty 配置文件安装根目录。


example1_3

Liberty 组件流程设计中使用的大部分属性都是在 Liberty Profile Application > Configuration > Application Properties下定义的。同一个属性可以有不同的值,只需在组件、环境和/或资源级别上重新声明它即可。属性值是根据 对象优先顺序进行解析的。


example1_17

 

有一些例外:例如,仅在应用程序属性部分中进行声明时,不会解析组件 basic setting 面板中引用的属性。我在组件属性部分添加了以下属性。

liberty_install_resp,解析为 Liberty 存储库的安装位置。
UCD Comp Property Declaration
UCD 组件属性声明

请参阅知识中心内的 使用属性。

您现在已经创建了一个名为 Liberty Profile Application 的应用程序。在下一小节中,您将在该应用程序中创建一个名为 Liberty Component 的组件。

2.创建一个 UrbanCode Deploy Liberty 组件

组件是安装应用程序所需的工件的主要容器。在本文中,Liberty Profile Installation 文件就是工件。

单击 Create New Component 并将该组件命名为 Liberty Component:
UCD Create Comp
UCD 创建组件

2. 将 Source Config Type 设置为 File System (Versioned) (参见下图中的 (1))。 UrbanCode Deploy 将从这里检索工件。也支持其他来源(比如 Subversion 和 Maven)。
3. 在 Base Path 字段中,键入 liberty_install_resp 属性的名称(参见 (2))。该字段不会自动完成,所以请确保您输入的名称格式正确(参见 使用属性)。
4. 选择 Import Versions Automatically 复选框(参见 (3))。这会让 UrbanCode Deploy 轮询要管理的新工件版本。
5. 选择 Copy to Code Station 复选框(参见 (4))。这会将工件导入到 UrbanCode Deploy 代码站中。代码站中的数据量可能成为一个问题,所以您可以在 Settings 视图中配置代码站中的工件的生命周期。
6. 选择 Run process after creating a new version 复选框(参见 (5))。这会触发 UrbanCode Deploy 应用程序流程。


UCD Liberty Profile Comp
UCD Liberty Profile 组件

您现在已通过填充基本组件信息,为 Liberty Profile Installation 文件创建了一个组件。接下来,您必须创建处理 Liberty Profile 工件所需的组件流程集。

3.创建组件流程

创建一个名为 Liberty Profile Install的新组件流程。 将 Process Type 设置为 Deployment ,并将 Inventory Status 设置为Active。 3.在自动执行部署期间,目标系统的本地 UrbanCode Deploy 代理使用该组件名称创建了一个 default working directory 。目标系统的本地代理将下载该组件工件,并将其存储在这个默认目录中。默认情况下,UrbanCode Deploy 将一个服务器属性设置为一个对组件的 Default Working Directory 值的引用。您可以在您的流程设计中引用相同的服务器属性。请注意, Default Working Directory 字段默认情况下已设置。
UCD Liberty Profile Comp Process Create
UCD Liberty Profile 组件流程创建

您现在已经创建了组件流程。

4. 创建流程设计

我们现在将通过以下步骤创建 Liberty Profile 组件的 Liberty Profile Install 流程设计:

停止之前运行的 Liberty Profile(参见下图中的 (1))。 删除之前的 Liberty Profile 安装(参见 (2))。 将 Liberty Install 工件下载到目标系统上的一个组件默认工作目录(参见 (3))。 安装 Liberty 配置文件(参见 (4))。 创建 Liberty 配置文件服务器(参见 (5))。


example1_8

技巧:就像目标系统已有一个活动部署一样来创建组件流程;在本例中,该组件流程为 Liberty Profile。如果服务器未运行或安装,可以有选择地继续执行刚才的第 1 和第 2 步。

UrbanCode Deploy Liberty 插件中提供了以下所有流程设计步骤。您只需将它们添加到设计中并配置一些设置。

1.将 Liberty Profile Stop Server 步骤添加到流程设计中:


'Stop Server' Liberty Profile Process Step
“Stop Server”Liberty Profile 流程步骤 在 Server Name 字段中,输入应用程序属性 liberty_serverName 的名称(参见上图中的 (1))。从 Configuration 面板管理组件和应用程序属性(另请参阅 使用属性)。 在 WebSphere Liberty Installation Directory 字段中,输入该应用程序属性 liberty_root 的名称(参见 (2))。 选择 Allow Failure 字段(参见 3)。这意味着在 Liberty 服务器已停止或未部署时,可以继续执行处理。 将 Working Directory 字段留空;该字段默认情况下是之前讨论的 Default Working Directory。UrbanCode Deploy 使用该组件名称创建一个工作目录。您也可以采用 ${p:resource/work.dir}/${p:component.name}形式引用该组件的默认工作目录。 将 Liberty Profile Delete Files and Directories 步骤添加到流程设计中:

UCD Process Step: Working and Base Directory.
UrbanCode Deploy 流程步骤:工作目录和基础目录。 将 Working Directory 设置为 Liberty 服务器的安装位置。 将 Base Directory 设置为当前工作目录。 启用 Allow Failure 选项。
更改工作目录路径时,请记住检查 Base Directory 和 Working Directory 值。在执行流程期间,base directory 值会附加到 working directory 值上。 将 Download Artifacts 步骤添加到流程设计中:

UCD Download Artifacts
UCD 下载工件 接受这个设计步骤的默认设置。 将 Liberty Profile Install Server Archive 步骤添加到流程设计中:


example1_12
这一步中再次引用了应用程序属性 liberty_serverNameliberty_root

将 Liberty Profile Create Server 步骤添加到流程设计中。

我还定义了其他用于 Liberty Profile 应用程序流程的 Liberty Profile 组件流程。Liberty 插件支持对设计以下组件流程很有用:

组件流程设计:卸载 Liberty 服务器


example1_13
两个步骤都使用了 Liberty 插件支持。

组件流程设计:启动 Liberty 服务器


example1_14

组件流程设计:停止 Liberty 服务器


example1_15
Liberty Profile Stop Server 步骤使用了 Liberty 插件支持。

5. 将该组件集成到 Liberty Profile 应用程序中

创建 Liberty Profile 组件流程后,需要将该组件与 Liberty Profile 应用程序关联。在该应用程序中,单击 Add Component 并选择组件名称:


example1_16

6.创建 Liberty Profile 应用程序的资源

资源通常是 UrbanCode Deploy 应用程序部署目标;比如一个服务器。任何安装了 UrbanCode Deploy 代理的系统都将显示在管理仪表板的 Resources > Agents 面板中。将代理包含在一个新的或现有的顶级组声明中,使它们可用于应用程序部署。

创建一个名为 Liberty Windows Group的顶级组。 将所有目标部署系统代理都添加到组中。


example1_18
对于要运行的组件流程,需要向系统代理注册该组件。

将组件添加到 Resource 视图中的一个代理:


example1_19

7. 创建应用程序环境

资源就绪后,为 Liberty Profile创建一个应用程序环境:


example1_20

要完成环境的创建,需要添加一个顶级组资源:


example1_21

8. 创建 Liberty Profile 应用程序的流程

声明了组件、资源和环境后,Liberty Profile 应用程序需要流程来管理组件流程的执行。

创建一个应用程序流程:
1. 单击 Create New Process。


example1_22
2. 将该流程命名为 Liberty Profile Install.


example1_23
3.在 Inventory Management 字段中,选择 Automatic。
4. 在 Offline Agent Handling 字段中,选择 Check Before Execution。
5. 将一个 Liberty Profile component > Liberty Profile Install 步骤添加到新的应用程序流程设计中。


example1_25
6. 将一个 Liberty Profile component > Liberty Profile Start Server 步骤添加到应用程序流程设计中。
7. 按以下方式组织应用程序流程设计步骤:


example1_24
8. 请记住,在执行整个部署前,可以测试组件流程。访问应用程序的 Component 页面,单击 Run Process,然后单击 Submit 来运行组件流程。


example1_26


example1_27

8. 运行部署流程

您现在已准备好运行部署自动化:

单击 Environment 定义旁边的 Request Process 按钮开始该部署:


example1_28

清除 Only Changed Versions 复选框,以强制覆盖之前的部署。这对部署自动化测试很有用:


example1_29

提交的流程自动化会显示在一个执行面板中:


example1_30

已完成的流程请求:


example1_31

这就完成了一次 Liberty 部署。

如果您想要在更多服务器之间进行部署,可以将更多代理添加到新的或现有的顶级组资源中。可通过将多个应用程序添加到现有的或新的环境中,在多个资源之间实现应用程序部署。创建额外的 UrbanCode Deploy 环境是对系统进行分组和控制部署的另一种方法,因为环境是运行应用程序流程的一个指定选项。

在第 2 部分,我们将安装一个包含 Liberty 部署的简单服务器应用程序。

The post 使用 IBM UrbanCode Deploy 部署 Liberty(第 1 部分) appeared first on developerWorks Developer Center -- 中国(Beta).