jenkins启动_jenkins拉取git代码进行自动化部署

Jenkins 是一款优秀的自动化构建服务器,利用jenkins可以帮我们解决重复繁琐的构建步骤,下面就来介绍如何搭建jenkins服务器以及如何配置项目自动化部署。

一、安装Jenkins

  1. jenkins的安装非常简单,本质就是一个可运行的war包,java程序员都不陌生;只要将这个war包放到tomcat容器即可运行起来;

  2. 官网下载Jenkins:https://jenkins.io/zh/

  3. 将下载的war复制到tomcat的webapps目录,然后将tomcat启动即可;tomcat启动后,直接访问:http://服务器ip:8080/jenkins就会看到Jenkins界面;

    b5681bde253b808343ffb66533693959.png

  4. 第一次打开会要求输入初始密码,初始密码在tomcat的logs目录中的catalina.out日志文件中可以找到;

    b4a57d2365766206fab65b85c8d352e1.png

  5. 将初始密码填入后即可进入安装插件页面,选择推荐安装即可;

    02bcf795bc2d6fae0be292135ebdaf7c.png

  6. 稍等片刻插件即可安装完成,但可能会出现网络问题导致插件不是全部安装成功,可以多试几次,跳过也无所谓,可后面再离线安装;

    74aff874f1918407796cc89fdc5ce9e7.png

  7. 创建登陆用户;

    94b084b28239dbf013dea1d1a143192e.png

  8. 安装并初始化完成;

    649e1672f4803a830dd6a581cc1a5733.png

由于新的jenkins版本会默认携带中文翻译插件,翻译非常渣渣,还是英文看得舒服,所以我把它卸载了。

二、jenkins配置

1. 配置maven;

选择 系统配置--全局工具配置;

0c3fcedaf364a81c47c8dda52783aacd.png

填入服务器maven的settings配置文件路径;

b686b83849c31110c25af13fc143f9c3.png

继续往下滑,找到maven项,填入maven目录。

3ba565dc7615a020ffa133a93f73325c.png

2. 配置jdk;

同样在全局工具配置下面;

配置java home即可,name即可。

868aebefc4b25bfa02c1b6d21087933b.png

3. 创建一个新任务;

2fb6991d13c2036a51ddf65e044d9865.png

选择第一个,名称随意,然后点击OK;

fb3b9c2a5565715d0028d95da6dde7e0.png

配置git仓库,用于拉取最新代码;

c40ac92a52bf51b5cbfff4b4fcb3d6c1.png

添加构建步骤;

e985f99e6a66f8011afc7c48f364872f.png

选择刚刚配置的maven;

51feb43824f83156f8dfcff4122de965.png

填入构建命令,就是maven的构建命令;

11cd6a660f7f712260792481873d4542.png

继续添加步骤,选择执行shell;

1b3a4a8589e347cf5b20cdf768022252.png

编写shell脚本,将maven打包出来的部署产物(jar包)启动起来;

4d65f70b3b9c6527b65c0a2f1cab7ed9.png

最后点SAVE保存,至此全部配置以完成。

三、shell脚本编写思路

这里有必要解释一下shell脚本该如何编写,先把脚本贴出来,脚本很简单,理解其思路即可;

#!/bin/bash
\cp -rf /root/.jenkins/workspace/auto-comment/target/auto-comment-0.0.1-SNAPSHOT.jar /data/javaproject/auto-comment/
ps -ef | grep auto-comment-0.0.1-SNAPSHOT.jar | grep -v grep | cut -c 9-15 | xargs kill -9
cd /data/javaproject/auto-comment/
cat /dev/null > auto-comment.log
nohup java -jar auto-comment-0.0.1-SNAPSHOT.jar > auto-comment.log 2>&1 &

successd="comment data is load!"
timeout=120

echo "项目构建完成,启动中..."
second=0
while [ true ]; do
/bin/sleep 1

if [ $second -eq $timeout ];then
     echo "启动失败!"
    exit 1
fi

 while read line
 do
    if [[ $line =~ $successd ]];then
        echo "启动完成!"
        break 2
    fi
 done 
second=`expr $second + 1`

done

具体思路:

  1. 我们知道,通过前面的配置(shell脚本之前的配置),jenkins会帮助我们从git上拉取最新的java代码,然后执行我们配置的build构建步骤第一步,也就是会将最新的项目进行打包,这里是得到jar包——auto-comment-0.0.1-SNAPSHOT.jar;

  2. jenkins打好的包,默认会放在/root/.jenkins/workspace/任务名称/target/xxxx.jar,我这里是/root/.jenkins/workspace/auto-comment/target/auto-comment-0.0.1-SNAPSHOT.jar ,知道路径过后将这个jar复制(存在则覆盖)到指定目录/data/javaproject/auto-comment/下;

  3. 通过ps命令和grep命令,截取到原来正在运行的jar的pid,然后把它kill掉;

  4. 然后重置项目运行的日志文件,cat /dev/null > auto-comment.log

  5. 再后台重新启动jar,并输出日志到auto-comment.log中,nohup java -jar auto-comment-0.0.1-SNAPSHOT.jar > auto-comment.log 2>&1 &

(后面shell代码作用就是通过定时读取这个文件的内容)

  1. 项目启动之后,通过间隔一秒钟的while循环,去读取auto-comment.log文件中的内容,当auto-comment.log中包含了指定的文本片段,即可认为启动成功,这里的指定文本片段为"comment data is load!",可根据自己项目找到启动成功的日志标识;

  2. 最后打印“启动完成!”,跳出while循环。

注意:shell脚本中还做了超时处理,即当second变量累加到120秒时,也退出while并终止shell脚本,就是为了避免项目启动失败,一直没有打印成功标识的日志。终止shell命令是exit,默认参数是0,代表shell执行成功,此时Jenkins构建结果会变为Finished: SUCCESS,所以启动超时或失败时,我们要设置一个参数exit 1,这样Jenkins构建结果就会变为Finished: FAILURE。

四、构建演示

回到主页面,点击右侧的构建图标即可;

c7af500945d5105bf909ac772c7371c3.png

bf8d8e2e70e92696c610b732f2bfc42e.png

6d1a0c4d4d816a4661b3db595df90d6a.png

部署完成。

欢迎公众号留言学习交流 END.

0940bc9094c20c324d58b54c5e5e8d42.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值