信息化 频道

用IBM Build Forge实现软件自动化构建

        【IT168 技术】IBM Rational Build Forge™是一个构建和发布管理系统,它提供了一个基于 Web 的控制台,在软件开发周期内帮助开发团队自动控制,追踪,分析复杂的构建和发布过程。它支持主要的开发语言,脚本和工具,无论处在哪一个开发平台,它能够将众多软件开发程序集成起来以便集中构建,并能在多项目、多团队之间对发布进行管理。已有的脚本和正在使用的开发工具可以很好地与Build Forge兼容,使得开发团队可以提高效率,自动操作,不需要很长的执行时间就可获得可追踪性来满足随时会降临的审计。

  本文以Rational Build Forge 7.1.3为例,带着读者一步一步地熟悉软件从安装,配置到成功构建简单的流程的过程,对有意使用Rational Build Forge的用户有一定的借鉴意义。

  1. 基本架构

  本产品大致分为三个部分,即数据库,Build Forge和代理。其中Build Forge又是由三个组件组成,图1详细描述其组成及功用。

                                                图 1 Build Forge三层架构

   ● Web 客户端:用户及管理员使用web浏览器以访问系统,web客户端访问web界面组件。

       ● API 客户端:指任意程序使用JAVA API或者Perl API访问build forge,API客户算直接访问服务层。

   ● Build Forge:是一个系统的集合的术语,在安装过程中系统由各个核心产品属性构成。

        Web 界面:也被叫做管理控制台或者控制台。这个组件是由一系列PHP模块组成的

        过程 Engine:管理任务的时序和执行

        服务层:一个数据抽象层,通过API客户端,web界面和流程engine提请求。

  一般的简单的安装,三种组件都装在同一个主机上,当然他们也能被安在不同的主机上。如果那样Build Gorge配置文件buildforge.conf就需要修改,使得组件之间能够连通。

   ● 数据库:为系统的信息起存储作用。数据库能够存储项目定义,系统配置和用户配置信息。

   ●  代理:主机上安装的一种程序。代理能够装在所有你想将管理控制台作服务器资源使用的主机上。代理接受请求并在安装了代理的主机上按步骤执行任务。

  各个组件能够以多种方式部署,从所有组件装在同一个主机上,到系统使用多个控制台和大量的分布式服务器资源,都能满足要求。图2具体描述了产品在多台服务器上的部署。

                                            图 2 Build Forge在服务器上的部署

  2. 安装管理控制台

  安装管理控制台的总体流程如图3所示。

                                                 图 3 安装管理控制台流程图

  2.1 安装前设置

  A. 国际数据设置

  首先配置web浏览器,设置语言并确保安装了正确的字体;配置DB2数据库以支持UTF-8字体:set DB2CODEPAGE=1208。

  B. 数据库备份(必须)

  在重装,升级期间备份数据库是必须步骤。如果在安装过程中出现问题,数据库备份能够将数据库恢复到安装前的最后状态。

  C. 数据库的设置

  数据库可以与管理控制台在同一个主机上,也可分开。此处略去DB2的安装过程。在操作系统中新建一个账户,以便管理控制台登陆数据库。例如,用户名:BUILD,密码BUILD;其次创建名为BUILD的数据库,再创建名为BUILD的模式。 

${PageNumber}

  例:创建数据库和模式的脚本样本:

  从已下载的文件将安装映像拷贝到本地文件目录下,并解压缩。双击launchpad.exe打开启动程序;选择在Installation Manager中安装的软件包。

                                             图 4 Build Forge管理控制台安装首页

  在第一个安装页面上选择Build Forge软件包,然后单击下一步,如图5。

                                                  图 5 版本选择 

  选择安装路径,如图6所示。

                                                 图 6 安装路径的选择

  选择安装产品的核心模块,如图7所示。

                                                      图 7 组件的选择

  输入许可证服务器的IP,端口号默认值27000,然后点击Yes按钮,当出现“许可证服务器完成”字样,表示配置成功。

                                              图 8 许可证服务器的连接配置

  接下来配置数据库。数据类型:DB2;数据库服务器的IP和端口号,数据库名称和数据库模式名称,按照之前安装DB2时创建的内容填写;最后输入数据库的用户名及密码,测试数据库连接。

${PageNumber}

                                               图 9 数据库的配置

  接下来配置应用和web服务器。用户需按照如图所示填写web服务器,应用服务器等的默认端口号。

                                                图 10 web和应用服务器配置

  点击确认进行安装,15分钟以后安装完成,重启服务器。在开始——程序中选择“在前台启动服务”。

                                               图 11 启动服务

  最后测试服务启动及安装配置正常,在浏览器URL地址处输入http://:, 如果出现如图12所示的登陆界面则说明管理控制台安装成功。注:默认的用户名密码都是root。

                                                      图 12 浏览器登录

  2.2 用户创建

  root用户是唯一在安装过程中创建的缺省用户,缺省密码是root,建议安装后立即更改密码。Root用户不需要用户许可证,同一时段内只能一位root登陆,即当有人用root登陆,当前正在用root登陆的用户就会被系统注销。Root用户的默认时间是管理控制台的时间,其他用户的时间也默认同root相同,可在第一次登陆后修改时间的设置。Root用户具有所有权限并可编辑其他用户的属性。尽管root不是任何一个群组的用户,但是它仍然能够查看,编辑或使用系统中任意数据对象,甚至能够通过在管理员——用户列表中点击“注销用户名”来注销用户。

  你可以通过将用户指定入群组,来实现对用户安全许可的管理。特别地,可以规定每个用户每天允许运行的最大运行次数。当达到上限后,系统会自动提示用户超过运行的限额。

                                                图 13 用户的创建例图

  2.3 日常维护问答

  怎样起/停管理控制台?

  在开始菜单选择程序——IBM Rational Build Forge Management Console,启动时点击“开始Engine服务”,停止时点击“停止Engine服务”

  控制面板:你也可以使用管理员工具——服务的控制面板来启动或者停止IBM Rational Build Forge Management Console服务。

  当运行管理控制台有问题时,建议前台运行以便随时查看状态和出错信息:开始菜单——程序——IBM Rational Build Forge Management Console——Start Engine(Foreground)。随着管理控制台的运行,输出的日志同时显示在控制台窗口上。如果以这种模式停止engine,在控制台中Ctrl-C即可。

${PageNumber}

  3. 安装代理

  增加服务器认证,配置服务器,测试连接成功。

  增加选择器,配置选择器变量。

  在windows平台安装agent步骤如下所示。

  3.1 定位并开始agent安装程序;

  3.2 如果在安装过程中检测到了已有agent的存在,它会提醒你覆盖旧版本,点击OK;

  3.3 在欢迎界面后点击“下一步”;

  3.4 如果你同意许可协议,点击“我同意”;

  3.5 在选择安装路径窗口,设置目的文件夹,选择下一步,或者使用默认路径:C:\Program Files\IBM\Build Forge\Agent;

                                                  图 14 代理的安装路径

  3.6 在配置窗口,选择合适的agent选项,点击“安装”;

  3.7 选择以下两种安装方式:

  作为服务安装 本文选择这个安装模式

                                                图 15 代理的安装选择

  安装用户模式agent 如果agent需要运行GUI应用,则选择用户模式agent

  3.8 指定agent使用的端口以方便其与管理控制台的数据传递,默认端口是5555;

  3.9 在完成创建面板点击“完成”;

  怎样在windows系统运行agent?

  Agent一般以服务模式安装并设置为自动,使得开机时自动运行。所以用户必须登录这台安装agent的机器来启动或者停止。

  启动或停止agent,只需在开始菜单:开始——程序——IBM Rational Build Forge——启动agent服务/停止agent服务

  你也可在命令行窗口运行如下命令来启动或停止服务:

  net start bfagent

  net stop bfagent

  为离散用户设置群组。点击管理员——用户——变更群组,使用增加或者删除按钮来灵活管理群组及其所属人员。

                                                    图 16 用户群组的设置

${PageNumber}

  4 创建一个简单的构建项目

  一般地,小型开发组会使用纯ant+perl脚本实现的日常构建过程,但如果将其部署到Build Forge上则会实现自动化构建,脱离传统手工方式,解放构建工程师的人力资源,消除整个团队的构建工作完全依赖于某一个或某几个构建工程师知识的历史,使团队内的任何人都可以发起并完成一次构建活动,使得构建具有重复性和可替代性。

  那么,如何创建一个简单的项目能测试产品安装成功?

  1.搭建服务器

  首先建立一个服务器授权(登陆用户和密码)以便IBM Rational Build Forge在服务器上访问并运行;其次创建服务器定义来表明一个带有agent的服务器已安装完毕;然后为HelloWorld项目建立一个选择器来决定在哪台server上运行;最后测试服务器连接以确认主控制台和agent机器能互相连通。

  2.定义一个项目

  首先新建一个名为HelloWorld的项目,并使用选择器来指明运行的服务器;其次新建一个步骤来运行命令,作用是显示Hello World的信息。

  3.运行

  首先开始一个项目实例,即一个作业;点击左面板的“作业”选项来检查作业状态。

  4.查看作业结果

  首先,在已完成列表中,点击作业图表来显示作业步骤的序列;其次点击作业的步骤来显示步骤日志;最后在步骤日志中寻找命令Hello World的输出。

  总体的项目构建流程图如下所示。

                                                        图 17 新建项目流程图

  4.1 项目运行

  A. 配置代理的权限

  首先登入Build Forge系统面板,选择左边的服务器——服务器权限;其次,点击增加服务器权限的按钮;再次,输入代理机器的用户名和密码;最后,点击保存服务器权限,配置成功。

                                          图 18 增加agent权限 B. 新增服务器

  选择左边导航栏的“服务器”,点击“新增服务器”按钮,输入服务器名称,主机名称,权限,访问的值,其他设为缺省值。

${PageNumber}

 

                                                   图 19 新增服务器

  然后测试连接,如果显示如图所示信息,则配置成功。点击保存按钮,以保存成功的设置。

                                                          图 20 测试连接

  C. 增加选择器

  选择左边导航栏的“选择器”,点击“增加选择器”按钮,输入选择器名称及访问值。

                                                   图 21 增加选择器

  选择“WBI选择器”,点击变量名,在类型,选择器名称,操作人员,值等下拉框如图所示做选择。最后点击保存按钮以保存变量。

                                                   图 22 选择器的内容

  D. 运行构建项目

  1) 为驱动做映像

  在安装路径C:\Program Files\IBM\Build Forge\Agent\ 下寻找BFAgent.conf 配置文件,增加如图所示的代理服务器信息,以解决虚拟磁盘访问的问题。

                                            图 23 Agent配置文件的修改

${PageNumber}

  2) 新建一个项目

  点击“新增项目”按钮,填写项目信息,如图所示。

                                                 图 24 项目的新增

  在新建的项目中,新增三个构建步骤,即创建构建环境,运行构建和打印通知。在每个步骤的命令框中填写构建步骤,并保存。

                                               图 25 项目步骤的填写- 步骤一

  注意在构建运行步骤中设置90分钟后超时失效。

                                                   图 26 项目步骤设置图

                                                      27 项目步骤的填写 - 步骤二

${PageNumber}

                                        图 28 项目步骤的填写 - 步骤三

  最后点击“项目开始”以运行项目。

  笔者将Build Forge在使用前做构建的步骤与使用后做了对比,总结形成如图所示的对比图,事前的纯手动变为了事后的全自动,充分体现了Build Forge的优势。

                                         图 29 应用Build Forge前后比较

  4.2 其他简单的扩展功能

  4.2.1 不同角色人员的不同权限配置:

  构建工程师:可以增删改任何项目;

  开发人员:可以发起执行某个项目,或增加步骤,但是没有删除权限;

  项目经理,开发/测试经理,部门经理:可以查看,修改或定制任何一次构建产生的报告和物料清单等;

                                          图 30 不同角色的权限设定

                                      图 31 不同群组的人员管理

${PageNumber}

  4.2.2 由该步骤的结果或日志关键字接连触发其他事件(举例)

  成功:(日志最后一行带successful字样)将构建结果上传至FTP并邮件通知全组人员(获取地址,包含的错误号,建议测试方面,BVT结果)

  失败(日志最后一行带fail字样):将失败的日志信息邮件发送给发生错误的部件的负责人及引起错误的文件的修改者(一般是由修改者少上传文件造成,很少情况是因为编译错误),并建议其修改完成后,自主发起一次构建,方便测试人员第一时间拿到正确的结果。

  4.2.3 其他

  其上也可集成Rational CC,CQ,RTC等,实现脚本的规范和简化

  将产品的安装配置,自动化测试脚本嵌入,使构建结果完成后,一键完成后续所有步骤,省时省力。

  同时配置多个服务器(使用其部分资源,甚至可以是其他组的资源,无需登录),当某台服务器不能正常运行任务时自动切换到其他服务器,不影响整个团队的开发测试进度,最大限度地利用服务器资源。

  定时运行项目的设置

  Rational Build Forge也可以设置时间来间歇性运行任务,例如常见的每天夜间运行构建。假如你希望每天1:30AM运行程序,应该做如下所述的设置:

                                                图 32 定时运行设置

  1. 在左边的菜单项选择schedules

  2. 在“描述”栏里可以写一些说明性文字

  3. 在“项目”列表中,选择你之前已创建成功的“Hello World”

  4. 在“选择器”列表,选择之前创建的“build selector”

  5. 在“分钟”框中填入“30”

  6. 在“小时”框中填入“13”,因为这是24小时计时制

  7. 点击“save schedule”按钮以保存设置

  鼠标轻轻滑过日历,就可以查看到设置的项目列表了。

                                                  图 33 定时运行的年历显示

  修改root的密码

  root的缺省密码是root,如果你想提高系统的安全性,请打开Build Forge的安装目录,找到bfclient.conf文件,如图所示修改bf_login_password字段的值。

                                                      图 34 修改配置文件

  5 结束语

  本文展示了IBM Rational Build Forge的安装及配置过程,并附以简单的构建项目。本产品帮助客户在服务器上实现构建、测试和通知发布的自动化,应该成为应用程序开发和部署工具中一项必备利器。

0
相关文章