jenkins配置自动发布

我这个jenkins是安装在docker里面的,需要设置免密,注(在docker里面推送密钥到目标主机)

第一步是生成密钥对

执行推送命令ssh-copy-id -i /root/.ssh/id_rsa.pub root@ip

1.构建一个maven项目

2.配置git

3.指定分支

4.在pre steps设置builds

5.准备shell脚本

shell脚本如下

#!/bin/bash

# 服务名称
SERVER_NAME=ddsp-BE

# 源jar路径,mm打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的。
JAR_NAME=ruoyi-admin

# target打包生成jar包的目录
JAR_PATH=/var/jenkins_home/workspace/ddsp-be/ruoyi-admin/target

# 本地Jar包工作目录
JAR_WORK_PATH=/var/lib

# 远程服务器信息
REMOTE_SERVER=192.168.0.214
REMOTE_USER=root
REMOTE_DIR=/home/ddsp-BE

echo "查询进程id-->$SERVER_NAME"
PID=$(ps -ef | grep "$SERVER_NAME" | awk '{print $2}')
echo "得到进程ID:$PID"
echo "结束进程"
for id in $PID
do
    kill -9 $id
    echo "killed $id" 
done
echo "结束进程完成"

# 复制jar包到执行目录
echo "复制jar包到执行目录: cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
echo "复制jar包完成"

cd $JAR_WORK_PATH
# 修改文件权限
#chmod 755 $JAR_NAME.jar

# 启动Jar包
#java -jar $JAR_NAME.jar &

# 将Jar包通过scp复制到远程服务器
echo "将Jar包复制到远程服务器..."
scp $JAR_WORK_PATH/$JAR_NAME.jar $REMOTE_USER@$REMOTE_SERVER:$REMOTE_DIR/$JAR_NAME.jar
echo $JAR_WORK_PATH/$JAR_NAME.jar $REMOTE_USER@$REMOTE_SERVER:$REMOTE_DIR/$JAR_NAME.jar
echo "Jar包已成功复制到远程服务器的/home目录下"
#ssh $REMOTE_USER@$REMOTE_SERVER "cd $REMOTE_DIR && java -jar $JAR_NAME.jar"
#ssh $REMOTE_USER@$REMOTE_SERVER "cd $REMOTE_DIR && java -jar -Dspring.config.location=/home/ddsp-BE/application/application-druid.yml,/home/ddsp-BE/application/application.yml $JAR_NAME.jar"
ssh $REMOTE_USER@$REMOTE_SERVER sudo systemctl restart ruoyi-admin.service
ssh $REMOTE_USER@$REMOTE_SERVER journalctl -u ruoyi-admin.service

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值