基本概念

简单地说,Bitbucket是公司内部的Git远端源码管理工具,相当于Gitlab或Github;Bamboo是自动化运维工具,可以构建、打包、部署,相当于Jenkins。
可以前往Atlassian官网了解Bitbucket、Bamboo的详细信息:
What is Bitbucket?What is Bamboo?Integrating Bamboo with Bitbucket Server

准备工作

进入bamboo -> create plan -> add job (or default job) -> add task

对bamboo project / plan / job 分别命名。

bitbucket添加javaagent后无法启动_Bamboo


添加任务可以使用搜索功能:

bitbucket添加javaagent后无法启动_Bamboo_02

添加任务

按顺序添加如下任务:

  1. 从bitbucket仓库checkout代码。
    选择正确的代码仓库即可。
  2. 使用Maven 3.x编译bpm-manager项目,打出jar包。
    add task -> 搜索"maven",选择Maven 3.x
    这一步要求bamboo服务器上已安装maven,这样在Executable中才会有maven选项。只需在Goal中执行mvn install命令,配置Build JDK为JDK 1.8即可,其他均采用默认配置。
    注意:Working subdirectory需要配置为pom.xml文件所在路径,本例中无需填入任何路径,因为默认便是bpm-manager的根路径,也就是pom文件所在路径。
  3. ssh 命令远程杀死远程占用80端口的进程,即 java 相关进程。
    add task -> 搜索“script”并选中
    只需在Script Body处输入ssh命令,注意,此时目标主机与bamboo主机之间应该已经配置好了SSH免密验证。
ssh root@ip "pkill java"

其他默认即可。

bitbucket添加javaagent后无法启动_CICD_03

  1. 使用 SCP 命令将jar包发送到目标服务器的指定路径下。
    add task -> 搜索“scp”并选中
    Host 处填入目标服务器 IP,认证方式采用用户名密码。
    Local Path 处填入jar包与项目根路径的相对位置,即:target/xxx.jar,如果在后面的Task执行过程中失败,那么可以根据日志中的路径报错信息来重新确定jar包所在位置。
    Remote Path处填入目标服务器存放jar包的位置。
  2. ssh 命令远程运行jar包。
    同第3步,其他保持默认,在Script Body处填入:
ssh root@10.161.7.21 "cd /opt/bpm-manager; nohup java -jar bpm-manager-0.0.1-SNAPSHOT.jar > nohup.log 2>&1 &"

bitbucket添加javaagent后无法启动_jar包_04

执行计划

run -> run plan

bitbucket添加javaagent后无法启动_CICD_05


可以看到计划在本次的执行是成功的:

bitbucket添加javaagent后无法启动_服务器_06