本教程演示了如何使用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>假设您已经使用Maven在Eclipse中构建了应用程序,那么第一步就是使用Bluemix DevOps Services创建Git项目。 您将在此Git项目中的Eclipse中推送您的本地项目,并使用Build&Deploy功能对其进行部署。
打开Bluemix DevOps Services控制台,然后选择Create a Project 。 命名项目(例如:TestServerPackageAutomation)。 选择创建一个新的存储库 ,然后在Bluemix上创建一个Git 存储库 。 将项目配置为要部署到Bluemix云的私有项目(选择此面板中的所有框,如图所示)。 填写所需的区域,组织和空间,以便在Bluemix中进行部署。接下来,您将Bluemix DevOps Services连接到本地Git存储库:
从DevOps Services控制台中,选择演示项目:TestServerPackageAutomation。 从概述页面复制项目的Git URL。 打开Eclipse IDE,然后右键单击Git Repositories视图。 选择粘贴存储库路径或URI 。 输入Bluemix中的URL和您本地目录路径,然后单击Next 。 项目克隆完成后,您将在Git存储库视图中看到Bluemix项目。现在提交并将项目从您的本地环境推送到Bluemix:
在Eclipse中,打开“项目资源管理器”,然后右键单击该项目。 选择Team> Share Project ,然后选择Git作为您的存储库,然后单击Next 。 选择您的项目,TestServerPackageAutomation,然后单击下一步 。 在“项目资源管理器”中右键单击该项目,然后选择“ 团队”>“添加到索引” 。 在“项目资源管理器”中右键单击该项目,然后选择“ 团队”>“提交” 。 提供描述性注释,然后单击“ 提交并推送” 。 目标Git存储库将自动选择。 点击提交 。 选择源引用和目标,然后单击“ 添加规格” ,然后单击“ 下一步” 。成功推送后,您将看到成功消息。
现在,您应该看到在IBM Bluemix DevOps上托管的项目。
接下来,您将在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上。
现在,您的应用程序及其服务器配置被推送到Bluemix上的Git存储库中。 接下来,您将使用Bluemix DevOps Services Build&Deploy功能来自动化交付管道:
在您的Bluemix DevOps Services控制台中,选择Build&Deploy ,然后为构建操作创建一个新阶段。 输入项目URL,输入类型和分支。 接下来,通过选择“ 作业”选项卡来创建版本。 在“ 构建器类型”下 ,输入Maven。 配置Build Shell 。请注意,输入配置假定您正在从Git master分支进行构建和部署。
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/在配置部署阶段之前,运行并测试您刚刚配置的构建阶段:
在DevOps Services Pipeline中,运行该阶段一次。 选择查看日志和历史记录 。 选择工件选项卡。 您应该看到应用程序的WAR文件已复制到“应用程序”下的DevOps Services构建档案目录中。现在完成配置,以在Bluemix中部署应用程序:
使用Build Artifact的输入类型创建一个舞台。 使用与先前构建相同的阶段和作业配置。 在此阶段下,如图所示创建一个新的部署作业并对其进行配置。使用以下CFI命令将应用程序推送到Bluemix: cf push "${CF_APP}" 。
正确配置构建和部署阶段后,它们应该出现在DevOps管道中。确保已使用指令“将更改推送到Git时自动执行作业”配置了构建阶段,然后尝试推送一些代码更改。 构建和部署应自动开始。
在本教程中,您学习了如何使用Bluemix DevOps Services Build&Deploy功能来配置和自动化您的应用程序交付管道。 对于此应用程序示例,您以自动化的构建周期同时执行了Maven,Cloud Foundry和UNIX命令。 您可以扩展您在这里学到的知识,以将Maven存储库中不可用的库集成到您的下一个版本中。
翻译自: https://www.ibm.com/developerworks/library/d-bluemix-devops-pipeline-trs/index.html
相关资源:jdk-8u281-windows-x64.exe