持续交付 devops_使用Bluemix DevOps交付管道自动化服务器推送

本教程演示了如何使用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上和您的本地环境中设置演示应用程序,您需要满足以下条件:

  1. Bluemix帐户; 如果您已经注册,则可以直接登录到IBM DevOps Services
  2. Eclipse IDEEclipseMaven插件
  3. 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功能对其进行部署。

  1. 打开Bluemix DevOps Services控制台,然后选择Create a Project
  2. 命名项目(例如:TestServerPackageAutomation)。
    该图显示了命名项目步骤
  3. 选择创建一个新的存储库 ,然后在Bluemix上创建一个Git 存储库
    该图显示了创建Git回购步骤
  4. 将项目配置为要部署到Bluemix云的私有项目(选择此面板中的所有框,如图所示)。
    该图显示了配置项目
  5. 填写所需的区域,组织和空间,以便在Bluemix中进行部署。
    该图显示了填写项目详细信息

步骤2.将本地存储库连接到Bluemix

接下来,您将Bluemix DevOps Services连接到本地Git存储库:

  1. 从DevOps Services控制台中,选择演示项目:TestServerPackageAutomation。 从概述页面复制项目的Git URL。
    该图显示了复制Git项目URL
  2. 打开Eclipse IDE,然后右键单击Git Repositories视图。 选择粘贴存储库路径或URI
    该图显示了将URL添加到本地存储库
  3. 输入Bluemix中的URL和您本地目录路径,然后单击Next
    该图显示了输入回购URL
    该图显示了输入本地环境的目录路径
  4. 项目克隆完成后,您将在Git存储库视图中看到Bluemix项目。
    该图显示了本地Git存储库视图中的Bluemix项目

步骤3.提交并推动项目

现在提交并将项目从您的本地环境推送到Bluemix:

  1. 在Eclipse中,打开“项目资源管理器”,然后右键单击该项目。
    该图显示了在资源管理器中打开项目
  2. 选择Team> Share Project ,然后选择Git作为您的存储库,然后单击Next
    该图显示了选择Git
  3. 选择您的项目,TestServerPackageAutomation,然后单击下一步
    该图显示了选择项目
  4. 在“项目资源管理器”中右键单击该项目,然后选择“ 团队”>“添加到索引”
    该图显示了将项目添加到Bluemix
  5. 在“项目资源管理器”中右键单击该项目,然后选择“ 团队”>“提交”
    该图显示了将项目提交到Bluemix
  6. 提供描述性注释,然后单击“ 提交并推送”
    该图显示了描述项目
  7. 目标Git存储库将自动选择。 点击提交
    该图显示了正在提交的项目
  8. 选择源引用和目标,然后单击 添加规格” ,然后单击“ 下一步”
    该图显示了添加项目的源引用和目标

成功推送后,您将看到成功消息。

图1.成功!
该图显示了成功屏幕

现在,您应该看到在IBM Bluemix DevOps上托管的项目。

该图显示了Bluemix上的项目

步骤4.配置服务器

接下来,您将在Git存储库中设置服务器配置文件夹。 defaultServer文件夹将包含您的server.xml配置文件,以及为每个应用程序构建生成并推送到Bluemix的WAR文件:

  1. 制作为演示应用程序配置的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>
  2. 在本地Git存储库中创建一个名为defaultServer的文件夹。
    该图显示了创建defaultServer文件夹
  3. 将具有服务器配置的项目的server.xml文件复制到新文件夹。
    该图显示了添加server.xml
  4. 在本地环境中的Git命令行中,将该文件夹推送到Bluemix。 只需依次输入以下命令。
    git add defaultServer
    git add defaultServer/*
    git commit
    git push origin master

    成功推送后,您应该看到以下输出。

    该图显示了成功的输出

    您还可以确认defaultServer文件夹位于Bluemix上。

    该图显示了在Bluemix上对defaultServer文件夹的确认

步骤5.构建应用程序

现在,您的应用程序及其服务器配置被推送到Bluemix上的Git存储库中。 接下来,您将使用Bluemix DevOps Services Build&Deploy功能来自动化交付管道:

  1. 在您的Bluemix DevOps Services控制台中,选择Build&Deploy ,然后为构建操作创建一个新阶段。 输入项目URL,输入类型和分支。
    该图显示了配置阶段
  2. 接下来,通过选择“ 作业”选项卡来创建版本。 在“ 构建器类型”下 ,输入Maven。
    该图显示了配置构建
  3. 配置Build Shell
    该图显示了Build Shell配置

Build Shell命令执行以下操作:

  1. 在defaultServer目录中创建一个新目录apps。
    mkdir -p defaultServer/apps
  2. 将目录更改为logtest并执行Maven软件包。
    cd testserverpackag
    	mvn -B package -X -Dmaven.test.skip
  3. 将生成的WAR文件(在目标目录中)复制到defaultServer / apps文件夹。
    cp target/*.war ../defaultServer/apps/

步骤6.运行并测试构建阶段

在配置部署阶段之前,运行并测试您刚刚配置的构建阶段:

  1. 在DevOps Services Pipeline中,运行该阶段一次。
    该图显示了运行舞台
  2. 选择查看日志和历史记录
    该图显示了查看日志和历史记录
  3. 选择工件选项卡。 您应该看到应用程序的WAR文件已复制到“应用程序”下的DevOps Services构建档案目录中。
    该图显示了验证WAR文件

步骤7.配置部署阶段

现在完成配置,以在Bluemix中部署应用程序:

  1. 使用Build Artifact的输入类型创建一个舞台。 使用与先前构建相同的阶段和作业配置。
    该图显示了创建Build Artifcat阶段
  2. 在此阶段下,如图所示创建一个新的部署作业并对其进行配置。
    该图显示了创建部署作业

    使用以下CFI命令将应用程序推送到Bluemix: cf push "${CF_APP}"

  3. 正确配置构建和部署阶段后,它们应该出现在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值