Jenkins部署说明

Jenkins部署 maven 项目简要说明。

1. Jenkins 服务

1.1 服务概览

服务在 linux 服务器上,有启停脚本 start.sh 和 stop.sh 和 jenkins.war。

  • start.sh
#!/bin/sh

# define variables
JAR_NAME=jenkins.war
PORT=9091

echo "find ${JAR_NAME} to kill before start process."
sh stop.sh
echo "------ begin start ------"

nohup java -jar $JAR_NAME --httpPort=$PORT >/dev/null 2>&1 &
  • stop.sh
#!/bin/sh

# define variables
JAR_NAME=jenkins.war

PROCESS=`ps auxww | grep ${JAR_NAME} | grep 'java -jar' | grep -v grep`
if [ "$PROCESS" = "" ]; then
  echo "process ${JAR_NAME} not exists"
else
  SID=`echo $PROCESS | awk '{print $2 }'`
  echo "prepare to kill "$PROCESS
  echo "begin kill "$SID" ..."
  kill -9 $SID
  echo "kill successfully"
fi;
# 服务地址
http://ip:port

1.2 Jenkins 安装

Jenkins 的安装很简单,在官网下载 jenkins.war,启动即可,可以部署在 tomcat 容器中,也可以直接启动,如下:

# --httpPort 指定服务端口
java -jar jenkins.war --httpPort=9091

安装完成后,按需配置 maven、jdk、ssh 服务器等等,不再赘述,请查阅相关资料。

1.3 插件安装

根据实际需要安装插件,去插件市场下载,市场地址

http://mirror.serverion.com/jenkins/plugins/

访问如下地址,上传插件,安装完毕后重启即可,插件安装可能会有依赖,根据界面提示先安装依赖即可。

http://ip:port/pluginManager/advanced

Jenkins 选中maven settings配置 jenkins maven项目_Jenkins

2. 项目部署配置

项目采用 Jenkins 部署,关联 svn 下载代码,使用 maven 构建,构建完成后通过 ssh 工具上传到指定服务器,最后运行指定脚本启动 jar 包。

2.1 新建任务

在 Jenkins 中新建一个 Maven 任务

Jenkins 选中maven settings配置 jenkins maven项目_服务器_02

2.2 关联 svn

在任务配置中,找到源码管理,关联 svn 仓库即可

Jenkins 选中maven settings配置 jenkins maven项目_Jenkins_03

2.3 maven 配置

根据需要配置 maven 命令,我们使用先 clean,后 package 即可。(maven须提前在 Jenkins 系统管理—系统配置中配置好,然后此处可以下拉选择)

Jenkins 选中maven settings配置 jenkins maven项目_服务器_04

2.4 构建后操作

构建成功后,需要将配置中心文件、微服务 jar 包发布到服务器上,并执行指定的脚本以启动服务,请按需添加即可。

Name 中可下拉 ssh 服务器,请提前在 Jenkins 系统管理—系统配置中的 Publish over SSH 中添加好,不再赘述。

Jenkins 选中maven settings配置 jenkins maven项目_Jenkins_05

Transfers 配置项说明:

Source files: 待上传文件,可使用通配符

Remove prefix: 上传至远程目录,源文件需要删除的前缀

Remote directory: 待上传服务器的远程目录地址

Exec command: 上传完毕后执行应用服务器对应的脚本

2.5 关于 Exec command 脚本

服务器的远程目录及脚本需要提前配置好,创建远程目录,创建 logs 目录,放置脚本,如果有特殊配置文件,请先配置好 config 目录并放入配置文件(也可以尝试用 Jenkins 发布)。

Jenkins 选中maven settings配置 jenkins maven项目_服务器_06

脚本参考如下:

jenkins-exec.sh
#!/bin/bash

# define variables
DIR=/home/***/app/***/platform-eureka-server/8100

# jenkins
source /etc/profile
export BUILD_ID=dontKillMe

cd $DIR
sh jenkins-start.sh

# 0 express succeed, 1 express failed
#exit 0
jenkins-start.sh
#!/bin/sh

# define variables
JAR_NAME=platform-eureka-server-1.0.0.jar
PORT=8100
LOG_FILE=./logs/platform-eureka-server.log

echo "find ${JAR_NAME} to kill before start process."
sh jenkins-stop.sh
echo "------ begin start, see: ${LOG_FILE} ------"

nohup java -Dserver.port=$PORT -jar $JAR_NAME >/dev/null 2>&1 &
echo "${JAR_NAME} started successfully."

# sleep 1s, make sure the process can start
sleep 1s

# it will blocking process
#tail -0f $LOG_FILE
jenkins-stop.sh
#!/bin/sh

# define variables
JAR_NAME=platform-eureka-server-1.0.0.jar
PORT=8100

PROCESS=`ps auxww | grep ${JAR_NAME} | grep ${PORT} | grep -v grep`
if [ "$PROCESS" = "" ]; then
  echo "process ${JAR_NAME} not exists"
else
  SID=`echo $PROCESS | awk '{print $2 }'`
  echo "prepare to kill "$PROCESS
  echo "begin kill "$SID" ..."
  kill -9 $SID
  echo "kill successfully"
fi;

3. 项目发布

项目配置好后,点击立即构建即可

Jenkins 选中maven settings配置 jenkins maven项目_Jenkins_07

可以在控制台查看日志,点击构建记录前面的圆点图标即可

Jenkins 选中maven settings配置 jenkins maven项目_jar_08