本教程演示了如何使用WebSphere®Liberty(一种快速,易于使用的Java™EE应用程序服务器)和IBM Bluemix DevOps Services自动执行服务器目录推送。 使用Bluemix DevOps Services Build&Deploy功能,您可以配置作业,这些作业同时执行来自Maven,Cloud Foundry和UNIX的命令,以自动执行Bluemix中的服务器目录推送。
你需要什么
本教程介绍了一种使用Eclipse IDE,DevOps Services和WebSphere Liberty Java EE应用程序服务器自动化应用程序交付管道的简便方法。 要在Bluemix上和您的本地环境中设置演示应用程序,您需要满足以下条件:
- Bluemix帐户; 如果您已经注册,则可以直接登录到IBM DevOps Services
- Eclipse IDE和Eclipse的Maven插件
- EGit ,Git的Eclipse插件
注意,Eclipse,Maven和EGit是可选的。 仅在要在本地环境中设置和运行演示应用程序时才需要它们。
关于演示项目
我们在Linux工作站上使用Eclipse和Maven开发了演示应用程序。 然后,我们使用EGit在本地开发环境中克隆了一个单独的Git项目。 由于本教程是关于自动执行服务器目录推送的,因此我们将不专注于演示应用程序。 下载源代码并使用下面的按钮运行应用程序。
该演示应用程序使用Java servlet与JavaServer Pages进行交互。 注意下面的Maven POM中对javax.servlet
API的依赖。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven- v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ibm.bluemix.serverpackageautomation</groupId>
<artifactId>testserverpackage</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>testserverpackage Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
<build>
<finalName>testserverpackage</finalName>
</build>
</project>
步骤1.在DevOps控制台中创建一个Git项目
假设您已经使用Maven在Eclipse中构建了应用程序,那么第一步就是使用Bluemix DevOps Services创建Git项目。 您将在此Git项目中的Eclipse中推送您的本地项目,并使用Build&Deploy功能对其进行部署。
- 打开Bluemix DevOps Services控制台,然后选择Create a Project 。
- 命名项目(例如:TestServerPackageAutomation)。
- 选择创建一个新的存储库 ,然后在Bluemix上创建一个Git 存储库 。
- 将项目配置为要部署到Bluemix云的私有项目(选择此面板中的所有框,如图所示)。
- 填写所需的区域,组织和空间,以便在Bluemix中进行部署。
步骤2.将本地存储库连接到Bluemix
接下来,您将Bluemix DevOps Services连接到本地Git存储库:
- 从DevOps Services控制台中,选择演示项目:TestServerPackageAutomation。 从概述页面复制项目的Git URL。
- 打开Eclipse IDE,然后右键单击Git Repositories视图。 选择粘贴存储库路径或URI 。
- 输入Bluemix中的URL和您本地目录路径,然后单击Next 。
- 项目克隆完成后,您将在Git存储库视图中看到Bluemix项目。
步骤3.提交并推动项目
现在提交并将项目从您的本地环境推送到Bluemix:
- 在Eclipse中,打开“项目资源管理器”,然后右键单击该项目。
- 选择Team> Share Project ,然后选择Git作为您的存储库,然后单击Next 。
- 选择您的项目,TestServerPackageAutomation,然后单击下一步 。
- 在“项目资源管理器”中右键单击该项目,然后选择“ 团队”>“添加到索引” 。
- 在“项目资源管理器”中右键单击该项目,然后选择“ 团队”>“提交” 。
- 提供描述性注释,然后单击“ 提交并推送” 。
- 目标Git存储库将自动选择。 点击提交 。
- 选择源引用和目标,然后单击“ 添加规格” ,然后单击“ 下一步” 。
成功推送后,您将看到成功消息。
图1.成功!
现在,您应该看到在IBM Bluemix DevOps上托管的项目。
步骤4.配置服务器
接下来,您将在Git存储库中设置服务器配置文件夹。 defaultServer文件夹将包含您的server.xml配置文件,以及为每个应用程序构建生成并推送到Bluemix的WAR文件:
- 制作为演示应用程序配置的server.xml文件的本地副本。
<server description="new server"> <!-- Enable features from Kaustubh--> <featureManager> <feature>jsp-2.2</feature> <feature>localConnector-1.0</feature> </featureManager> <!-- To access this server from a remote client add a host attribute to the following element, e.g. host="*" --> <httpEndpoint httpPort="9080" httpsPort="9443" id="defaultHttpEndpoint"/> <webContainer deferServletLoad="false"/> <applicationMonitor updateTrigger="mbean"/> <webApplication id="testserverpackage" location="testserverpackage.war" name="testserverpackage" type="war"/> </server>
- 在本地Git存储库中创建一个名为defaultServer的文件夹。
- 将具有服务器配置的项目的server.xml文件复制到新文件夹。
- 在本地环境中的Git命令行中,将该文件夹推送到Bluemix。 只需依次输入以下命令。
git add defaultServer git add defaultServer/* git commit git push origin master
成功推送后,您应该看到以下输出。
您还可以确认defaultServer文件夹位于Bluemix上。
步骤5.构建应用程序
现在,您的应用程序及其服务器配置被推送到Bluemix上的Git存储库中。 接下来,您将使用Bluemix DevOps Services Build&Deploy功能来自动化交付管道:
- 在您的Bluemix DevOps Services控制台中,选择Build&Deploy ,然后为构建操作创建一个新阶段。 输入项目URL,输入类型和分支。
- 接下来,通过选择“ 作业”选项卡来创建版本。 在“ 构建器类型”下 ,输入Maven。
- 配置Build Shell 。
Build Shell命令执行以下操作:
- 在defaultServer目录中创建一个新目录apps。
mkdir -p defaultServer/apps
- 将目录更改为logtest并执行Maven软件包。
cd testserverpackag mvn -B package -X -Dmaven.test.skip
- 将生成的WAR文件(在目标目录中)复制到defaultServer / apps文件夹。
cp target/*.war ../defaultServer/apps/
步骤6.运行并测试构建阶段
在配置部署阶段之前,运行并测试您刚刚配置的构建阶段:
- 在DevOps Services Pipeline中,运行该阶段一次。
- 选择查看日志和历史记录 。
- 选择工件选项卡。 您应该看到应用程序的WAR文件已复制到“应用程序”下的DevOps Services构建档案目录中。
步骤7.配置部署阶段
现在完成配置,以在Bluemix中部署应用程序:
- 使用Build Artifact的输入类型创建一个舞台。 使用与先前构建相同的阶段和作业配置。
- 在此阶段下,如图所示创建一个新的部署作业并对其进行配置。
使用以下CFI命令将应用程序推送到Bluemix:
cf push "${CF_APP}"
。 - 正确配置构建和部署阶段后,它们应该出现在DevOps管道中。
步骤7.测试
确保已使用指令“将更改推送到Git时自动执行作业”配置了构建阶段,然后尝试推送一些代码更改。 构建和部署应自动开始。
结论
在本教程中,您学习了如何使用Bluemix DevOps Services Build&Deploy功能来配置和自动化您的应用程序交付管道。 对于此应用程序示例,您以自动化的构建周期同时执行了Maven,Cloud Foundry和UNIX命令。 您可以扩展您在这里学到的知识,以将Maven存储库中不可用的库集成到您的下一个版本中。
翻译自: https://www.ibm.com/developerworks/library/d-bluemix-devops-pipeline-trs/index.html