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
2. 项目部署配置
项目采用 Jenkins 部署,关联 svn 下载代码,使用 maven 构建,构建完成后通过 ssh 工具上传到指定服务器,最后运行指定脚本启动 jar 包。
2.1 新建任务
在 Jenkins 中新建一个 Maven 任务
2.2 关联 svn
在任务配置中,找到源码管理,关联 svn 仓库即可
2.3 maven 配置
根据需要配置 maven 命令,我们使用先 clean,后 package 即可。(maven须提前在 Jenkins 系统管理—系统配置中配置好,然后此处可以下拉选择)
2.4 构建后操作
构建成功后,需要将配置中心文件、微服务 jar 包发布到服务器上,并执行指定的脚本以启动服务,请按需添加即可。
Name 中可下拉 ssh 服务器,请提前在 Jenkins 系统管理—系统配置中的 Publish over SSH 中添加好,不再赘述。
Transfers 配置项说明:
Source files: 待上传文件,可使用通配符
Remove prefix: 上传至远程目录,源文件需要删除的前缀
Remote directory: 待上传服务器的远程目录地址
Exec command: 上传完毕后执行应用服务器对应的脚本
2.5 关于 Exec command 脚本
服务器的远程目录及脚本需要提前配置好,创建远程目录,创建 logs 目录,放置脚本,如果有特殊配置文件,请先配置好 config 目录并放入配置文件(也可以尝试用 Jenkins 发布)。
脚本参考如下:
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. 项目发布
项目配置好后,点击立即构建即可
可以在控制台查看日志,点击构建记录前面的圆点图标即可