上一篇《自动化运维之CI工具-Jenkins的安装》我们介绍了jenkins的安装,这里我们介绍下使用部署的这个jenkins自动化部署一个spring boot项目。
1、首先我们访问下 http://192.168.31.30:8080/
2、点击左侧的新建Item
3、填写job名称:bigdatainterface,选择构建一个Maven项目
点击确定进入下一步。
4、配置general,这里就是详细的配置,比较重点
4.1、填写描述,这里随便填写,也可以不用填写
这里是我们本地的gitlab搭建的服务器,所以下面的这些选项都不用勾选。
4.2、源码管理
这里的源码管理其实就是利用jenkins进行项目打包,所以需要把项目从git上拉下来,在本地进行maven打包,这里根据自己的情况填写即可。例如:
4.3、构建触发器
这里我们选择无论如何都进行重新编译构建
4.4、构建环境
这里我们选择在构建前删除掉workspace的文件,保证每次拉取的代码和编译的jar包都是最新的。
4.5、Pre Steps 配置
这里主要是配置我们在构建前需要做什么准备工作。下面我们列举个流程图
在Pre Steps里面主要做两件事情,第一件是修改配置文件,第二件是检查对应服务器上是否有缓存目录,没有则创建
4.5.1、选择执行shell
具体的命令如下:
cd /var/jenkins_home/workspace/bigdatainterface cd src/main/resources/ sed -i 's/gonganwang/test/' application.yml
上面这个命令是在springboot的application.yml里面查找下,把prd修改为test,这里根据实际情况进行修改即可。
4.5.2、选择创建一个send files or execute commands over ssh
1)选择对应的服务器
2)Source files 随便填写
3)execCommand 使用如下命令
if [ ! -d /mnt/tmp ];then mkdir -p /mnt/tmp fi
这里的作用就是检查缓存目录是否存在,不存在则直接创建。
4.6、Build
1、在Root Pom里面,我们直接填写pom.xml即可
2、在Goals and options里面填写
clean install -Dmaven.test.skip=true -Ptest
4.7、PostSteps
这个阶段就是最后阶段,因此在这里主要触发如下动作
1、把打好的jar包上传到服务器的缓存目录 2、停掉正在运行的程序 3、把之前的jar包进行备份 4、把缓存目录的jar包移动到工作目录 5、启动项目
在这里呢,配置其实很简单,如下操作即可
1、创建一个send files or execute commands over ssh
2、SSH Server 选择目标服务器即可
3、Source files里面我们填写:
target/bigdatainterface-pt-0.0.1-SNAPSHOT.jar
这里主要是maven打好的jar包位置
4、Remove prefix填写:
target/
5、Remote directory填写如下:
/mnt/tmp
这里的目录是目标服务器的缓存目录,我们拟定的是把文件先上传到/mnt/tmp目录下。
6、Exec command 这里就是执行对应的停止,备份、移动、启动的命令了,这里需要手动编写
#!/bin/sh DATE=$(date +%Y%m%d) DIR=/home/pubserver/interface-pt2 JARFILE=bigdatainterface-pt-0.0.1-SNAPSHOT.jar RUNPORT=34131 #初始化psid变量(全局)这里主要监控进程 psid=0 checkpid() { javaps=`ps -ef | grep $JARFILE | grep -v "grep"` if [ -n "$javaps" ]; then psid=`echo $javaps | awk '{print $2}'` else psid=0 fi } #杀掉 checkpid echo '准备停止正在运行的程序,此时的pid是:'$psid if [ $psid -ne 0 ]; then kill -9 $psid if [ $? -eq 0 ]; then echo "停止成功[OK]" else echo "停止失败[Failed]" fi checkpid if [ $psid -ne 0 ]; then stop fi else echo "================================" echo "停止正在运行的程序失败,程序 is not running" echo "================================" fi echo "准备执行jar包备份" #备份 if [ ! -d $DIR/backup ];then mkdir -p $DIR/backup fi cd $DIR mv $JARFILE backup/$JARFILE$DATE #移动 mv -f /mnt/tmp/$JARFILE . echo '准备启动jar包,完整路径是:'$DIR/$JARFILE nohup java -jar $DIR/$JARFILE --server.port=$RUNPORT > out.log 2>&1 & checkpid if [ $psid -ne 0 ]; then echo "程序启动成功 (pid=$psid) [OK]" else echo "程序启动失败 [Failed]" fi echo "启动jar包完成" echo "准备删除多余备份,只保留5个备份" #保留5个备份包 cd backup/ ls -lt|awk 'NR>5{print $NF}'|xargs rm -rf echo "此次发布完成"
具体图示如下:
4.8、构建设置
这里我们一般不需要做任何配置,主要是一个email的通知,在生产环境里面,这里可以增加下通知,就是构建成功后就发email进行通知。
4.9、构建后操作
这里我们一般不需要操作什么,留空即可。
到这里我们所有的配置就全部配置完毕了。接下来进行下测试.
5、测试阶段
5.1、我们回到主页:http://192.168.31.30:8080/
这里可以看到我们刚才创建的项目
5.2、点击构建按钮,就是这个三角形。
5.3、我们去看下控制台的输出日志
可以看到我们的日志都是成功的,然后在主页上去看
这里是勾的状态就代表成功的,此时我们去服务器上看。
也是没问题的,全部成功。
到此我们jenkins做自动化部署就全部完成了。
还没有评论,来说两句吧...