gitlab+jenkins实现项目自动部署

1 实现效果

向gitlab代码仓库提交代码后,Jenkins自动构建,并自动部署项目

2 Jenkins任务配置如下

gitlab+jenkins实现项目自动部署_第1张图片
gitlab+jenkins实现项目自动部署_第2张图片
gitlab+jenkins实现项目自动部署_第3张图片

gitlab+jenkins实现项目自动部署_第4张图片
里边写的内容是

BUILD_ID=DONTKILLME
/tmp/autodeploy.sh

gitlab+jenkins实现项目自动部署_第5张图片
gitlab+jenkins实现项目自动部署_第6张图片

3. 脚本内容

#!/bin/bash
#定义变量
START="/usr/local/tomcat/bin/startup.sh"
STOP="/usr/local/tomcat/bin/shutdown.sh"
DIR=`date +%Y%m%d%H%M%S`
DEST="/tmp/$DIR"
APPBASE=/usr/local/tomcat/webapps/ROOT/
WARDEST=/tmp
WARFILE="http://JENKINS_URL/job/kgcweb/lastSuccessfulBuild/artifact/target/kgcweb.war"

###backup### 备份原来Tomcat项目的文件
mkdir -p $DEST
mv $APPBASE/* $DEST

###fetch war file###  获取项目war包
wget -O $WARDEST/kgcweb.war -c $WARFILE

###deploy war file###  部署war包
unzip $WARDEST/kgcweb.war -d $APPBASE
$STOP
$START

4 jenkins主机的准备

jenkins主机:
[root@localhost ~]# chmod -R 777 /usr/local/tomcat/
不执行这步,解压就没有权限,因为Jenkins用户也是普通用户

如果最后部署成功就OK,如果最后部署成功了,但是访问的时候页面报500的错误,需要更改一下Tomcat安装目录的属主和属组

[root@localhost ~]# chown -R jenkins:jenkins /usr/local/tomcat/

5 触发构建

[root@gitlab tmp]# git clone [email protected]:kgc/kgcweb.git
Cloning into 'kgcweb'...
remote: Enumerating objects: 57, done.
remote: Counting objects: 100% (57/57), done.
remote: Compressing objects: 100% (36/36), done.
remote: Total 57 (delta 19), reused 32 (delta 7)
Receiving objects: 100% (57/57), 4.21 KiB | 0 bytes/s, done.
Resolving deltas: 100% (19/19), done.
[root@gitlab tmp]# cd kgcweb/
[root@gitlab kgcweb]# pwd
/tmp/kgcweb
[root@gitlab kgcweb]# ls
pom.xml  README.md  src  test.txt
[root@gitlab kgcweb]# echo '111' >> test.txt 
[root@gitlab kgcweb]# git add test.txt
[root@gitlab kgcweb]# git commit -m "ttttt"
[master a5fdf44] ttttt
 1 file changed, 1 insertion(+)
[root@gitlab kgcweb]# git push origin master
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 263 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
To [email protected]:kgc/kgcweb.git
   53e5329..a5fdf44  master -> master
[root@gitlab kgcweb]# 

6 jenkins构建结果展示

gitlab+jenkins实现项目自动部署_第7张图片
gitlab+jenkins实现项目自动部署_第8张图片
gitlab+jenkins实现项目自动部署_第9张图片
gitlab+jenkins实现项目自动部署_第10张图片
gitlab+jenkins实现项目自动部署_第11张图片

你可能感兴趣的:(linux)