jenkins自动化部署项目8 -- 新建job(服务代码部署在linux上)

jenkins(windows) ----> 应用服务器(linux):

1。后台java服务:

与部署在windows上不同的是,这里我选择了在【构建后操作】中使用ssh向远程linux服务器传送jar包和需要执行的命令

 

sh /root/home/scripts/demo.sh 8007
cp -r /home/soft/project/sr_f5_manage/sr_f5_manage-0.0.1-SNAPSHOT.jar /home/soft/jarpackage
#每次构建都会有日志,为了不越来越多,每次运行项目之前会清空下这个文件nohup.out
cp /dev/null nohup.out cd /home/soft/jarpackage nohup java -jar sr_f5_manage-0.0.1-SNAPSHOT.jar & sleep 10
#此处之所以加上sleep 10 是因为一开始虽然构建成功,但是netstat -nlp | grep 8007查看进程发现找不到进程,因为项目启动需要时间,尝试着sleep发现就好了

BUILD_ID=dontKillMe:网上很多人说构建结束,服务进程会被kill,需要加上这个才行。我试了下,不要这个时进程也不会被kill

#这个就是上面的demo.sh脚本,根据项目端口查找进程,然后kill掉
port=$1 if [ "${port}" == "" ];then exit 1 fi #根据端口号查询对应的pid,端口号在执行脚本时做为参数 pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F "/" '{ print $1 }'); #杀掉对应的进程,如果pid不存在,则不执行 if [ -n "$pid" ]; then kill -9 $pid; fi

 

ps:这样配置之后,构建还是会有问题,如图。jenkins不会正常结束构建,而是直到超时:

 

这时就需要在【高级】选项那里勾选上Exec in pty,这样就可以正常了。参考地址:  https://blog.csdn.net/u013066244/article/details/52788407

 

 

 

 2.前端:我们前端使用tomcat,和后端没什么不一样,只有配置的脚本不一样。如图,因为比较简单,就不单独贴出来了

图中第一行命令是关掉tomcat服务,如果tomcat本身没有运行则构建会报错,因此需要先判断下tomocat服务是否正在运行,我直接用上面的demo.sh脚本去代替这一步

sh /root/home/scripts/demo.sh 8080

 

Source files的匹配规则可以了解下:

* matches zero or more characters, ? matches one character.

 

posted @ 2018-08-07 11:25  luckylemon  阅读(1097)  评论(2编辑  收藏  举报