您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 Code iProcess 课程 认证 咨询 工具 火云堂 讲座吧   成长之路  
会员   
 
   
 
  
每天15篇文章
不仅获得谋生技能
更可以追随信仰
 
     
   
 订阅
  捐助
整合 Jenkins 和 IBM UrbanCode Deploy 实现定制化可持续交付
 
72 次浏览     评价:  
2018-12-5 
 
编辑推荐:
本文来自于IBM,,主要介绍了DevOps、Jenkins以及IBM UrbanCode Deploy 和 Jenkins的整合等相关内容。

DevOps 简介

DevOps 是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。

IBM UrbanCode Deploy 及 Jenkins 简介

UrbanCode Deploy

IBM UrbanCode Deploy(简称 UCD)是 IBM 的应用自动化部署工具。该工具基于一个完善的应用部署自动化管理信息模型,提供可视化的部署逻辑设计手段,并通过远程代理技术,实现对复杂应用在不同环境下的自动化部署。

UCD 不仅仅是一个实现应用部署自动化的工具,还是一个服务于系统工程师(负责部署环境的系统管理)、发布工程师(负责应用的部署逻辑设计)、部署工程师(负责 执行应用部署)和质量工程师(负责应用部署前和部署后的质量审计)等多个角色的管理平台。

Jenkins

Jenkins 是一个广泛用于持续构建的可视化 web 工具,它是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,包括以下两个主要功能

1、持续的软件版本发布/测试项目。

2、监控外部调用执行的工作。

从而辅助实现了各种项目的"自动化"编译、打包、分发部署。Jenkins 可以很好的支持各种语言(比如:java, c#, php 等)的项目构建,也完全兼容 ant、maven、gradle 等多种第三方构建工具,同时支持插件机制,为不同用户实现定制化服务提供了接口。

在 DevOps 理念中,如何实现可持续化部署是一个很重要的步骤,UCD 支持自动化部署,Jenkins 辅助自动化调度,将二者结合在一起可有效帮助用户实现可持续交付和部署,为此我们研究使用 Jenkins 的插件机制,将 UCD 和 Jenkins 进行整合,具体步骤如下所述。

整合 IBM UrbanCode Deploy 和 Jenkins

基本要求

UrbanCode Deploy

IBM UrbanCode Deploy 被收购后的最新版本是 v6.1,收购前的最新版本为 UrbanCode Deploy v4.8。

下载地址: https://developer.ibm.com/urbancode/products
/urbancode-deploy/

插件下载地址:https://http://plugins.urbancode.com
/IBMUrbanCodeDeploy

JRE v6.0 或以上

Jenkins

Jenkins 官方网址:http://Jenkins-ci.org/

Java 6 以及以上的版本

安装配置

UrbanCode Deploy

安装服务器,运行 install-server.bat / install-server.sh. 根据向导及命令行提示安装

安装好产品之后,需要先启动服务,然后通过 Web 客户端访问。进入到服务器的安装目录(例如 C:\IBM\UDeploy\bin),并在命令行运行 run_server.cmd ,服务器成功启动后出现如下届面。

图 1. UCD Server 启动界面

启动后,用 web 客户端登录 根据在安装过程中设置的是否选用 SSL 来选择登录地址:

https://localhost:8443 或者 http://localhost:8080 (8080 和 8443 是安装时的默认端口), 出现系统登录页面。使用默认的用户 admin,密码 admin 进行登录。下图是 IBM UrbanCode Deploy 主界面。

图 2. UCD Web 界面

接下来我们安装 UCD agent,IBM UrbanCode Deploy 提供了 3 种方式来安装 agent:拷贝 agent 安装包到目标机器,使用命令行方式进行安装; (运行 install-agent.bat ),或者通过脚本推送安装包到多台目标机器上进行安装,或者使用 IBM UrbanCode Deploy 服务器管理界面进行图形化安装。我们选择第一种方式进行安装,具体步骤按照 install-agent.bat 命令号提示即可。

安装完成,使用命令行界面进入到 Agent 的安装目录,(例如:C:\IBM\UDeploy_Agent\bin),运行启动命令 run_ibm-ucdagent.cmd。

正常启动后,在 Resouce 页签下,所启动的 Agent 会显示 Online 状态。

图 3. UCD Agent 状态

Jenkins

下载最新的版本(一个 WAR 文件),Jenkins 要运行 Java5 以及以上的版本。将下载的 war 包文件部署到 servlet 容器,然后启动容器,在浏览器的 URL 地址栏中输入类似http://localhost:8080/jenkins/这样的地址即可。下图是安装成功后的界面。

图 4. Jenkins Web 页面

实例开发:IBM UrbanCode Deploy 和 Jenkins

开发 UrbanCode Deploy 相关组件

下面我们开发一个 UCD 的组件来实现拷贝文件的功能(把 C:\source_copy 拷贝到目标文件夹 C:\uc_copy_target 中),点击 "Create New Component" 创建一个组件.

图 5. 创建 UCD 组件

进入组件属性窗口,依次填写必选项 Name 和 Base Path,如图 6 所示,点击 Save 按钮进行创建保存。

图 6.UCD 组件属性页

创建完毕之后,通过组件列表选取刚才创建的组件 HelloWord_CopyFile,点击进入,可看到如下图所示的各项标签页。

图 7.UCD 组件标签页

点击进入 Processes 页签,为组件创建一个 process 来实现拷贝文件的功能,如下图所示点击 Create New Process。

图 8.创建组件流程

命名组件流程,同时选择 Process Type 为 Operational (With Version),Save 保存新流程。

图 9.组件流程属性窗口

在画板页面的 Deign 板块选择相应的插件 FileUtils-Copy Directory,并将其拖拽至画板中,单击各个节点将该节点与 Start 和 Finish 节点进行关联如图 10 所示。

图 10.组件流程画板3

点击 Copy Directory 右上角的按钮,对节点属性进行编辑,如图 11 所示,指定源文件夹以及目标文件夹,同时指定所需要拷贝的文件属性,**/*表示包含所有类型文件。

图 11.Copy Directory 节点属性窗口

至此我们已经创建好 CopyFile 组件,这个组件是可重用的,但是如何在 UCD 里面使用这个组件呢,我们需要创建一个新的应用,并将该组件绑定到这个应用上即可。如图 12 所示,点击 Create New Application 进行创建。

图 12.创建新应用

创建完毕,类似于组件页签,点击进入 HelloWordApp 应用,并进入 Components 标签页,点击 Add Component,在对话框列表中选择刚才创建的的 CopyFile 组件即可。

图 13.绑定组件

接下来最后一步,为这个应用创建一个相应的应用流程,如图 14 所示,在弹出的属性框中进行命名,其他属性保持默认值即可。

图 14.创建应用流程

打开应用流程画板,讲组件以及组件流程安装到应用流程中,如图 15 所示,拖拽 Install Component 至画板并进行相应连接。

图 15.安装组件

在安装组件属性窗口,在列表中选择上面创建的组件 HelloWorld_CopyFile 以及组件流程 CopyFile_Process,保持其它默认值进行保存。

图 16.安装组件属性

在创建好组件以及流程之后,如何运行这些流程呢,我们还需要为这个流程创建运行资源同时指定运行环境,已实现组件及流程的可重用性,如图 17 所示。

图 17.创建资源和环境

创建完毕之后,将环境加入到该可运行资源中,如图 18 所示,显示状态为 Online,表示该资源可以用来运行应用流程。

图 18 绑定环境和资源

至此,UCD 相关的开发完毕,进入环境列表,点击 Request Process 按钮,即可对该流程进行运行测试。如图19所示,运行结果可在 History 页签进行查询。

图 19 测试运行

在下面的章节中,我们将进行 Jenkins 相应开发。

开发 Jenkins 相关组件

如果希望在 Jenkins 中调用 UrbanCode 的应用,我们需要用到 Jenkins 的插件机制,Jenkins 提供了一系列插件以便整合 Jenkins 与第三方应用。这里,我们需要用到 UCD 的插件 ibm-ucdeploy-publisher.hpi,我们可以在 UCD 的安装包 URBANCODE_DEPLOY_V6.0_MP_EN.zip 找到这个文件。进入 Jenkins 首页,点击左侧导航栏 Manage Jenkins, 然后选择列表中 Manage Plugins。

图 20 Jenkins 主页

进入插件管理页面后,选择进入 Advanced 标签页,选择 Upload Plugin,点击 Browse 按钮选择本地的 UCD 插件 hpi 文件,选择 upload,进行插件安装。

图 21 安装 Jenkins 插件

安装完成后,进入 Installed 标签页,可以见如图 22 所示的 IBM UrbanCode Deploy Plugin,如果有新版本需要安装,可以选择先 Uninstall 现有版本,然后按照上述步骤重新安装即可。

图 22 Jenkins 中的 UCD 插件

安装好 UCD 插件后,如何实现 Jenkins 与 UCD 的整合呢,返回到 Jenkins 首页导航栏 Manage Jenkins,选择 Configure System,进入系统配置页面。

图 23 配置 Jenkins 系统

拖拽页面至 IBM UrbanCode Deploy Server 部分,输入相应的 UCD Server URL 以及用户名和密码,点击 Test Connection 按钮确认配置信息正确可以正常连接。

图 24 配置 UCD 连接信息

实例测试:IBM UrbanCode Deploy 和 Jenkins

按照上述配置连接信息后,我们通过新建 Jenkins 作业进行整合测试,如图 25 所示,选择导航栏 New Item,在右侧列表输入作业名,并选择 Freestyle project,点击 ok 进入配置页面。

图 25 新建 Jenkins 作业

拖拽配置页面至 Post-build Actions 部分,在组件属性中输入上文中 UCD 中创建的组件名称 HelloWorld_CopyFile。

图 26 配置 Jenkins Build 信息 1

在 Deploy Application,Environment 以及 Process 中输入 UCD 中创建的对应的应用,环境以及流程信息,如图 27 所示。

图 27 配置 Jenkins Build 信息 2

点击运行 Jenkins Build,可以通过 Build History 查看运行状态以及历史日志信息。

图 28 运行 Jenkins Build

点击进入可查看详细日志。

图 29 Jenkins 日志输出

总结及经验分享

在 Jenkins 中第一次 build job 时可能会出现如图 30 所示错误

图 30 Jenkins 错误日志

根本原因是 Jenkins 用到的 log4j 版本问题,需要升级到指定的 1.2.12,但 Jenkins UrbanCode Deploy plug-in 自带版本是 1.2.9. 可通过这个地址获取相应版本,

The Log4j-1.2.17 下载地址: http://logging.apache.org/log4j/1.2/download.html

并将该路径: C:\Program Files (x86)\Jenkins\war\WEB-INF\lib中的jar 包替换 Log4j-1.2.17.

之后需要删除 JENKINS.SF 和 JENKINS.RSA,并且更改 MAINFEST.MF . 文件路径是: C:\Program Files (x86)\Jenkins\war\META-INF

按如下更新:

图 31 Mainfest.mf 文件修改

   
72 次浏览  评价: 差  订阅 捐助
相关文章

为什么要做持续部署?
剖析“持续交付”:五个核心实践
集成与构建指南
持续集成工具的选择-装载
相关文档

持续集成介绍
使用Hudson持续集成
持续集成之-依赖管理
IPD集成产品开发管理
相关课程

配置管理、日构建与持续集成
软件架构设计方法、案例与实践
单元测试、重构及持续集成
基于Android的单元、性能测试
每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号