七. 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。

欢迎扫码交流:

原文地址:https://www.cnblogs.com/gexiaoshan/p/10147731.html