Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工做,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。 (以上介绍来源于百度百科)java
其实通俗来讲,Jenkins就是一个自动化部署项目的工具,帮我省去重复的运维工做。git
部署环境须要的工具,安装的资料网上都有不少,能够自行安装配置web
环境变量spring
Java的环境变量我没配置,我安装的jdk版本环境变量自动有了docker
jenkins安装方式常见的有三种shell
1.在官网下载war包部署在tomcat中apache
2.经过docker部署浏览器
3.经过yum install jenkins 安装tomcat
我选用的是第三种。安装步骤以下安全
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key sudo yum install jenkins
service jenkins start 启动 service jenkins stop 中止 service jenkins restart 重启
而后访问http://${ip}/8080,能够看到jenkins那个小老头,根据自行配置安装插件,其中密码在这里
vi /var/lib/jenkins/secrets/initialAdminPassword
记得在阿里云上开放端口
我的建议,Jenkins第一次进入推荐安装的插件就默认安装就行,省的还须要后续本身安装,固然,若是本身安装的话须要Maven和Git插件。
由于SpringBoot是以jar的形式发布自带tomcat,因此不须要配置tomcat容器了。
新建项目,选择构建自由风格的项目,给项目起个名字,而后点击Ok。
这里我用到了几个参数,由于可能有时须要提早准备好参数在进行构建,以下图:
用Git进行将项目Clone下来,配置本身的用户密码,Repository URL配置git地址(这里提供的地址是在gitlab上随意建立的SpringBoot项目,项目没什么特别)
这里选择执行Shell,内容以下:
mvn clean install -Dmaven.test.skip=true echo $spring_profile $jar_path $jar_name cd /usr/local/shell/ ./stop.sh $jar_name echo "Execute shell Finish" ./startup.sh $spring_profile $jar_path $jar_name $project_name
在上面执行的Shell里面还用到了两个Shell,分别是stop.sh,实质就是找到jar执行的pid,而后kill,具体内容以下:
jar_name=${1} echo "Stopping" ${jar_name} pid=`ps -ef | grep ${jar_name} | grep -v grep | awk '{print $2}'` if [ -n "$pid" ] then echo "kill -9 的pid:" $pid kill -9 $pid fi
startup.sh内容以下,具体能够根据状况修改:
spring_profile=${1} jar_path=${2} jar_name=${3} project_name=${4} cd ${jar_path}/${project_name}/target/ echo ${jar_path}/${project_name}/target/ echo nohup java -jar ${jar_name} & BUILD_ID=dontKillMe nohup java -jar ${jar_name} --spring.profiles.active=${spring_profile} &
以上两个文件记得设置好权限,否则构建的时候会报错。
碰到的小插曲,Jenkins内没法使用mvn,报错mvn:command not found,这里的解决方式是添加软连接,将mvn命令也指向/usr/bin/mvn,以下:
ln -s /usr//apache-maven-3.6.0/bin/mvn /usr/bin/mvn
点击运行后,如图所示,刚刚预配置的参数均可以看到并能够修改,这里咱们用默认配置好的就能够。
构建成功后浏览器访问项目地址,正常显示
6.1 Jenkins全局安全配置
须要在Jenkins上配置容许匿名用户访问
6.2 GitLab配置
这里的URL地址填写Jenkins项目构建触发器的地址带上token,而后选择触发器(通常选择push和merge就能够了)
点击测试返回201则成功。
而后查看Jenkins就会有一条构建记录
若是失败,我碰到的问题有下面几个
1.地址路径参数不对
2.Jenkins安全设置没有勾选运行匿名访问
整体过程坑其实仍是不少的,老是出现不一样的问题,可是网上通常都有解决办法,前人也是同样踩过坑的,后面会把docker引进来。
大致结构