java - 使用Bamboo在远程Windows服务器上构建和部署

标签 java maven jboss bamboo

我希望人们可能会友好地通过我遇到的Bamboo查询指出正确的方向。

我所在的公司拥有一个现有的Bamboo CI服务器,该服务器运行非常顺利(尽管是旧版本-2.6),我需要设置一个新版本。现在已经完成了几乎所有Bamboo工作的两个人都离开了,所以我内部实际上没有人可以寻求建议。

我希望我能描述手动过程,然后有人建议自动执行此过程的最佳方法。

手动过程(全部在Windows部署服务器上):

  • 在六个单独的工作目录上运行“svn update --force”,依次使用两个单独的Subversion存储库
  • 在所有六个目录上运行“mvn clean install”,其中一个目录需要传入一个额外的-Duser.timezone参数,有时它需要运行两次或三遍才能成功构建
  • 运行“DeployLocal.bat”批处理文件
  • 通过执行两个JBOSS实例的“bin \ run.bat”启动文件
  • 来启动它们

    批处理文件本身可以分为几个步骤:
  • 对某些项目进行Maven构建(是,在上述步骤之后重复)
  • 将一些构建子目录复制到部署服务器位置
  • 为部署服务器设置自签名SSL证书和密钥库
  • 将更多文件复制到部署服务器目录中的正确位置

  • 我不确定这与我们的Bamboo服务器如何配合使用。我开始创建一个新计划,但是当它询问要使用哪个存储库(我们使用的是两台服务器和六个存储库)时,我开始大为困惑!

    如果我理解正确(可能不理解),我相信通常的做法是在Bamboo服务器上进行所有构建,然后将文件移动到服务器上的正确位置,然后再调用一些远程启动命令。这是我在这里需要做的吗?

    即使有人可以为我提供有关Bamboo的良好指南,我也会非常感激。如果有人可以简要地解释这些概念,以使我理解我需要学习的具体知识,那将更好!

    忠告不胜感激:)

    最佳答案

    好吧,我没有在Windows上运行Bamboo的丰富经验,但是我会给您一个机会:)让我首先介绍2.6版的Bamboo管理员指南:

    https://confluence.atlassian.com/display/BAMBOO026/Bamboo+Administrator%27s+Guide

    查看有关plansagents的部分。

    对于Bamboo版本,计划基本上由脚本组成。它可以是Ant脚本,Maven脚本或批处理或bash脚本。但是你只能得到一个。 Bamboo的更高版本允许您运行多个脚本-您应该真正考虑升级。

    但是,如果您绝对不能升级,则需要编写一个单一的脚本来运行所有这些maven任务,然后运行DeployLocal.bat文件,然后启动两个JBoss实例。 (Bamboo为您处理源代码签出位。)然后,您必须在Bamboo中将计划配置为run the script

    所以,让我们谈谈战略!

    +我是否在Bamboo服务器上构建代码,然后将其复制到远程Windows服务器?还是在远程Windows服务器上构建它?

    首先,您应该determine if your Bamboo license支持remote agents。登录到Bamboo并单击管理。然后向下滚动到左侧边距的“系统”菜单。点击“许可证详细信息”。 “支持的远程代理数”下的值是否大于0?

    如果是这样:
    好极了!您可以在Windows部署服务器上install a remote agent,并使用capabilities将计划配置为在该远程代理上运行。这意味着,当您在Bamboo中运行计划时,所有源代码签出/构建/脚本都将在Windows部署服务器上运行。您节省了很多工作!

    如果不是:
    您将必须在Bamboo服务器上构建代码,然后将其传输到部署服务器。您需要弄清楚如何做以下事情:

  • 如何将文件从Bamboo服务器传输到Windows服务器。您可能会考虑的一件事是在一台服务器上共享一个NFS文件并将其挂载到另一台服务器上。或在任一台机器上设置FTP服务器。
  • 如何从Bamboo服务器在Windows服务器上执行命令,以便您可以运行DeployLocal.bat文件并启动JBoss。在Unix环境中,使用ssh相当容易。在Windows中-也许您应该咨询一些Windows窥视功能?以前,我已经能够成功使用MobaSSH服务器在Windows计算机上远程运行批处理文件,但是MobaSSH实际上仅在Bamboo计算机是Unix时才有意义。
  • 构建后如何打包代码,以便可以将其从Bamboo服务器复制到Windows服务器。这就像将Maven构建的输出压缩并在Windows服务器上解压缩一样简单。
  • 如何将它们组合在一起:编写一个将构建,打包,传输和解压缩代码的脚本,然后远程 运行DeployLocal.bat和jboss脚本。


  • +如何使Bamboo计划从多个存储库中检出代码?

    不幸的是,Bamboo 3.3是第一个允许作业从多个存储库中签出源代码的版本。您在此处有3种选择,从最佳到最坏依次排列:
  • Upgrade to a newer version of Bamboo。可能会是一个痛苦的过程,因为您已经远远落后了,但可能值得付出努力。最终将需要有人对其进行升级-现在要晚一些。
  • svn:externals作弊。在您的一个Subversion版本库中创建一个新目录,并在其上设置svn:externals属性,并引用需要Bamboo签出的六个版本库中的每一个。配置Bamboo以检出新目录-瞧,这些svn存储库中的每一个都将自动检出。
  • 提出其他一些解决此限制的技巧,例如编写一个脚本,该脚本将为每个存储库运行一次svn客户端。


  • +可能需要一段时间才能开始工作。

    是。您绝对应该检查同事已经制定的所有计划的配置和脚本-他们可能已经为您完成了全部或大部分工作。

    关于java - 使用Bamboo在远程Windows服务器上构建和部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10301172/

    相关文章:

    java - 尝试检查内部存储中是否存在文件

    java - PDFBox 2.0 读取单页并写入/保存到新文件

    java - 方法原型(prototype)中可变参数的多个对象类型?

    linux - Seam 应用程序 RichFaces 未加载组件

    java - 如何在表格布局中使用 richfaces 的自动完成功能?

    java - 将变量从一种方法传递到另一种方法时不一致的变量

    maven - Maven下多个spring boot应用的端到端集成测试

    java - javax.faces.bean包的真正起源是什么?

    maven - 带有 jacoco 的声纳仅显示 testng 的覆盖范围,而不显示 powermock 的覆盖范围

    JBoss 似乎在命令行启动时挂起