Jenkins上集成springboot项目一键部署

登录Jenkins并创建视图

  1. 登录Jenkins后点击下图中加号

在这里插入图片描述

  1. 填写视图名称,根据自己具体项目可以具体定义,这里以test-demo为例,点击create按钮,视图创建成功

在这里插入图片描述

创建任务流程

  1. 选择自己的试图后,选择左侧的新建任务按钮,弹出任务框
    在这里插入图片描述

  2. 点击新建任务后,弹出下图所示的内容
    在这里插入图片描述

  3. 点击ok后,弹出下图所示内容,这里选择参数化构建,选择Git参数
    在这里插入图片描述

  4. 选择Git参数后,弹出如下内容,名称随意填写,这里我天的是version,参数类型我这里选择分支,默认分支选择master
    在这里插入图片描述

  5. 填好上面的内容,鼠标拉到最后,进行一键部署脚本编写,在流水线中编写脚本
    在这里插入图片描述

  6. 进行脚本编写,jenkins所在服务器一定要和目标服务器做好免密登录

pipeline {
    agent any
    environment {
         giturl="这里填写自己项目的gitlab地址"
         target_server_path="/mnt/test/" #项目部署路径
         tar_name="demo.tar.gz" #打的是项目的tar包,我这里用的是自定义打包,
         tar_name_back="demo.tar.gz.back" #原来的tar包备份
         testchine_ssh="root@127.0.0.1" #目标服务ip,这里我已127.0.0.1为例,登录目标服务器需要做服务之间的免密登录
     }
    // 存放所有任务的合集
    stages {
        stage('拉取Git代码') {
            steps {
                checkout([$class: 'GitSCM', branches: [[name: "${version}"]], browser: [$class: 'GitLab', repoUrl: ''], 
                extensions: [], 
                userRemoteConfigs: [[credentialsId: '67c2edba-f7c9-4cdf-a1d4-277c4896ef4f', url: "${giturl}"]]])
            }
        }

        stage('构建代码') {
            steps {
                sh 'mvn clean package -Dmaven.test.skip=true'
                sh 'ssh ${testchine_ssh} "cd ${target_server_path}; rm -rf ${tar_name_back};mv ${tar_name} ${tar_name_back}; rm -rf demo"'
                sh 'scp -r ${WORKSPACE}/target/demo.tar.gz ${testchine_ssh}:${target_server_path}/'
                
            }
        }

        stage('重启服务') {
            steps {
                echo '重启服务'
                sh "ssh ${testchine_ssh} 'cd ${target_server_path}; tar -zxvf demo.tar.gz; ./restart.sh restart'"
            }
        }

    }
    post {
                    always {
                            echo '构建结束...'
                    }
                    success {
                            echo '恭喜您,构建成功!!!'
                    }
                    failure {
                            echo '抱歉,构建失败!!!'
                    }
                    unstable {
                            echo '该任务已经被标记为不稳定任务....'
                    }
                    changed {
                            echo ''
                    }
       }
}

在这里插入图片描述

  1. gitlab的凭证创建
  • 选择系统管理
    在这里插入图片描述
  • 进入系统管理后,鼠标拉到最后,选择Manage Credentials
    在这里插入图片描述
  • 进入后点击添加凭证
    在这里插入图片描述
  • 添加好凭证,点击创建,就ok了
    在这里插入图片描述
  1. 配置好,点击应用,就可以进行一键打包部署,首次打包部署时,只有你填写默认分支。
  2. 项目重启脚本
#! /bin/bash
ID=`ps -ef|grep demo.jar|grep -v grep|awk '{print $2}'`
echo "${ID}"
if [ -z "${ID}" ];
     then
        echo "正在启动..."
        source /etc/profile #一定要有这个命令,否则脚本无法执行
        nohup java -jar -Dspring.config.location=bootstrap-test.yml -Xms1024M -Xmx2048M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/mnt/openapi/heapdump.hprof -XX:+PrintGC -XX:+PrintGCDetails -Xloggc:/mnt/openapi/logs/gc.log demo.jar > /dev/null 2>&1 &
    else
        echo $ID
        kill -9 $ID
        echo "终止进程 $ID 成功"
        echo "正在启动..."
        source /etc/profile
        nohup java -jar -Dspring.config.location=bootstrap-test.yml -Xms1024M -Xmx2048M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/mnt/openapi/heapdump.hprof -XX:+PrintGC -XX:+PrintGCDetails -Xloggc:/mnt/openapi/logs/gc.log demo.jar > /dev/null 2>&1 &

        resID=`ps -ef|grep demo.jar|grep -v grep|awk '{print $2}'`
        echo "${resID}"
        echo "启动完成"

fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值