0


使用Jenkins实现自动化部署

一、原理

   开发人员提交完代码至版本控制器后,由Jenkins自动获取远程代码,自动打包,然后再自动发布的过程。

二、使用Docker安装Jenkins

前提是linux中已经安装Docker,再执行以下命令:

docker run -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean

访问Jenkins:http://192.168.154.128:8080/

(无法访问可关闭防火墙 命令:systemctl stop firewalld)

提示密码在路径中的文件中,因此需要进入到docker容器找到该密码:

输入完密码后进入到如下界面:

选择安装推荐的插件进入:

到了下面这个界面,说明Jenkins安装成功!

三、Jenkins控制台配置jdk和Maven环境

    因为Docker在安装Jenkin时,已自动在容器中安装Jenkins依赖的相关jdk以及maven环境。因此可将已安装好的jdk和maven在Jenkins控制台中进行配置。

进入到docker容器jenkins中,通过echo $JAVA_HOME命令查看当前容器内jdk的安装路径

docker ps -a

docker exec -it eb077c1bf067 bash

echo $JAVA_HOME

配置jdk:

配置maven:

点击最下面的保存按钮

springboot项目为Maven项目,需要下载maven插件:

系统管理--插件管理--可选插件--搜索Maven Integration进行安装,然后勾选安装后重启Jenkins

当点击新建一个任务后出现如下内容,表明maven插件安装成功

四、Jenkins控制台配置git/svn 源代码路径,以及启动jar/war包时的shell脚本

回到DashBoard首页-->点击项目 --> 点击配置

3.源码管理(配置git仓库地址,Jenkins会从远程仓库拉取代码)

4.构建配置(Jenkin拉取代码后会自动执行打包命令)

clean install -Dmaven.test.skip=true

5.配置-POST Steps下配置shell脚本(Jenkins打包完成后,自动执行shell脚本启动项目,实现自动化部署),最后保存即可

附shell脚本:

#!/bin/bash

#!/bin/bash是指此脚本使用/bin/bash来解释执行。其中,#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径。bash只是shell的一种,还有很多其它shell,如:sh,csh,ksh,tcsh,...

#!/bin/bash只能放在第一行,如果后面还有#!,那么只能看成是注释。

#服务名称

SERVER_NAME=springbootdemo

#源jar路径,mm打包完成之后,target目录下的jar包名称,也可选择成为war包,war包 可移动到Tomcat的。
JAR_NAME=springbootdemo-0.0.1-SNAPSHOT

#target打包生成jar包的目录

JAR_PATH=/var/jenkins_home/workspace/springboot_project/springbootdemo/target

以具体的打包位置为准,可以先构建一次项目,通过日志查看打包的目录

#打包完成之后,把iar包移动到运行jar包的目录
JAR_WORK_PATH=/var/lib

echo "查询进程id-->$SERVER_NAME"
PID=ps -ef | grep "$SERVER_NAME" | awk '{print $2}'
echo"得到进程ID: $PID"
echo"结束进程"
for id in $PID
do
kill -9 $id
echo "killed $id"
done
echo"结束进程完成"

#复制jar包到执行目录_

#echo" 复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
#cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
#echo"复 制jar包完成"
#cd $JAR_WORK_PATH
#修改文件权限
#chmod 755 $JAR_NAME.jar

#前台启动
cd $JAR_PATH
java -jar $JAR_NAME.jar

#后台启动
#BUILD_ID=dontKillMe nohup java -jar $JAR_NAME.jar &

选择构建历史,查看工作路径

检查结果

控制台输出成功!!!

访问项目成功!!!

问题记录:

1.当jenkins在构建项目的过程中,从github上拉取代码时超时问题(因gihub部署在国外),可以在配置--Additional Behaviours--高级的克隆行为--克隆和拉取操作的超时时间(分钟)设置超时时间

2.当日志中报pom.xml文件找不到问题。jenkins默认会去找当前jenkins项目名称目录下的pom.xml。如果你上传git的时候pom.xml文件上面还有一层目录,可以在配置pom.xml文件前加父目录

3.最终在访问spring项目的时候,要看springboot项目启动时暴露的端口是多少,要与宿主机做端口的映射(启动时-p),最终访问宿主机的端口

标签: jenkins 自动化 java

本文转载自: https://blog.csdn.net/xuguxiong/article/details/125661734
版权归原作者 99~ 所有, 如有侵权,请联系我们删除。

“使用Jenkins实现自动化部署”的评论:

还没有评论