zoukankan      html  css  js  c++  java
  • 七. jenkins部署springboot项目(4)-linux环境--远程调试

     前提:linux环境,jenkins服务器和springboot服务器不在一台机器。

    linux环境,jenkins这里就不说了,主要说下和windows环境的不同。

    1. jenkins服务器连接springboot服务器通过秘钥连接,所以需要设置免密码登录,参照:https://www.cnblogs.com/gexiaoshan/p/9404424.html

    2. 在jenkins上,系统管理-系统设置里配置秘钥路径,如下图:

    Passphrase:密码(key的密码,如果你设置了,没有设置的话,这里不需要填)

    Path to key:key文件(私钥)的路径

    Key: 秘钥

    我这里只要填Path to key: /root/.ssh/id_rsa

    SSH Servers配置类似,就不详述了。

    3. job的配置,主要如下:

    linux上的shell脚本如下:

    #!/bin/bash
    
    echo "deploying $project_name..."
    JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
    JAVA_HOME=/data/tools/jdk1.8
    PATH=$JAVA_HOME/bin:$PATH
    CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
    export JAVA_HOME PATH CLASSPATH
    
    DEPLOY_DIR=/data/services
    JAR_FILE=$3
    PROJECT_NAME=$1
    BUILD_NUMBER=$2
    BUILD_DATE=$(date +%Y%m%d)
    
    DEPLOY_BACKUP_DIR=/data/backup
    
    echo "start create backup folders..."
    if [ ! -d $DEPLOY_BACKUP_DIR ];then
     mkdir -p $DEPLOY_BACKUP_DIR
     echo "create folder $DEPLOY_BACKUP_DIR"
    fi
    
    CURRENT_BUILD_BACKUP_DIR=$DEPLOY_BACKUP_DIR/$PROJECT_NAME/$BUILD_DATE/$BUILD_NUMBER
    mkdir -p $CURRENT_BUILD_BACKUP_DIR
    echo "create folder $CURRENT_BUILD_BACKUP_DIR"
    
    cp $DEPLOY_DIR/$JAR_FILE $CURRENT_BUILD_BACKUP_DIR/$JAR_FILE
    echo "create backup folders completed..."
    
    cd $DEPLOY_DIR
    
    mkdir -p $DEPLOY_DIR/$PROJECT_NAME
    mv $DEPLOY_DIR/$JAR_FILE $DEPLOY_DIR/$PROJECT_NAME/$JAR_FILE
    cd $DEPLOY_DIR/$PROJECT_NAME
    
    echo "ps -ef | grep $JAR_FILE | grep -v grep | awk '{print $2}'"
    pid=`ps -ef | grep $JAR_FILE | grep -v grep | grep -v $$ | awk '{print $2}'`
    echo "current pid is $pid"
    if [ -n "$pid" ]
    then
      echo "kill current process.pid:[$pid]"
      kill -9 $pid
    fi
    
    #java -jar $JAR_FILE --spring.profiles.active=test > nohup.log &
    
    java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=0.0.0.0:$4,suspend=n -jar $JAR_FILE --spring.profiles.active=test -Xms256m -Xmx256m > nohup.log &
    if [ $? = 0 ];then
      sleep 10
      tail -n 50 nohup.log
    fi
     
    echo "deploy $PROJECT_NAME is completed."
    

    这里启动脚本:

    java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=0.0.0.0:$4,suspend=n -jar $JAR_FILE --spring.profiles.active=test -Xms256m -Xmx256m > nohup.log &

    开启了一个debug端口($4:作为参数传进来的),用户测试环境上debug.

    调试方式:

    在idea上进行配置,如下:

    Host:是springboot项目的服务器ip

    Port:是上面说的debug端口号,并不是springboot项目本身的端口号。

    配置好后就启动debug:

    这时访问测试环境地址,就会进入本地debug。

    欢迎扫码交流:

  • 相关阅读:
    转-文件批量重命名
    解决死锁之路(终结篇)
    Python批量修改文件名
    Android AudioTrack分析
    Android Audio介绍
    Android GNSS介绍
    Android HIDL介绍
    【vue】类和内联样式绑定
    【vue】计算属性
    svn post-commit不能同步
  • 原文地址:https://www.cnblogs.com/gexiaoshan/p/10147731.html
Copyright © 2011-2022 走看看