记一次项目部署的坑:代码更新到测试环境没生效,新功能没实现

本文记录了一次新功能部署失败的排查与解决过程,详细分析了Jenkins到Tomcat服务器的ssh免密登录失败导致的问题,并分享了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、事件起因

二、排查过程

三、解决经过

四、总结

附脚本


一、事件起因

新需求是在APP列表中新添两个字段。在本地开完完成,写入、查询都能实现达到要求。但是部署到测试环境时,经测试新功能没实现。

二、排查过程

1)查看git上的diamante、Jenkins编译的代码,发现代码都已经更新。

2)仔细看Jenkins部署的日志,发现问题:

于是去查看相应的脚本,

Jenkins服务器到Tomcat服务器的ssh免密登录失败,导致Jenkins新打的war复制不过去。

3)在Tomcat服务器长查看对应目录的war,发现war的更新时间竟然是好几天前的了,果然没复制过来。

三、解决经过

1)尝试一、刚开始未定位好问题,就把Jenkins的工作空间清理:

但是由于对这个目录与服务器上的对应目录不清楚,导致再部署时找不到deploy-test.sh脚本。后来从别的项目拷贝过来处理完成。

2)尝试二、针对分析出的问题,知道是免密登陆的问题

配置Jenkins到Tomcat服务器的免密登录:

A免密登录B:
A:ssh-keygen -t rsa
A:ssh-copy-id -i ~/.ssh/id_rsa.pub bdp@xx.xx.xx.xx
#以上完成后,B服务器上/home/bdp/.ssh目录下多一个authorized_keys文件

#注意文件权限
B chmod 700 ~/.ssh 
chmod 600 ~/.ssh/authorized_keys

最后,问题解决。

四、总结

遇到报错,一定要仔细看日志,仔细!从日志着手。

附脚本

1)deploy-test.sh

WORK_DIR=`dirname $0`
WORK_DIR=`cd "$bin"; pwd`

PARAM=$*
ENV=${PARAM#*-}
IP=${PARAM%-*}
USER=bdp
TEMP_PATH=/home/$USER
DEPLOY_PATH=/opt/apps/apache-tomcat-8.5.33

SERVERS=$PARAM      # supposed to be like "10.15.27.172"

for i in $SERVERS;
do
  echo "deploy BDP CASH to server:$i";
  scp $WORK_DIR/target/sea.war $USER@$i:$TEMP_PATH
  ssh -t $USER@$i "source "$TEMP_PATH"/.bash_profile;sh -x "$DEPLOY_PATH"/online.sh"
  echo 'BDP CASH 上线完成'$IP' PATH:'$DEPLOY_PATH
done

2)online.sh

#!/bin/sh
USER=bdp
TEMP=/home/$USER
nowt=`date +%Y%m%d%H%M%S`
source /home/$USER/.bash_profile
TOMCAT_HOME="/opt/apps/apache-tomcat-8.5.34"  #tomcat目录路径
echo "停止tomcat服务"
cd "$TOMCAT_HOME"
sh -x stop.sh
echo "备份原有的cash.war包"   #webapps是网站目录
mv webapps/sea.war warback/sea.war.$nowt
echo "删除webapps目录下的webapps目录和cash.war"   #webapps是网站目录
rm -rf "$TOMCAT_HOME"/webapps/*
echo "复制cash.war到webapps目录下"
cp $TEMP/sea.war "$TOMCAT_HOME"/webapps
echo "启动tomcat服务"
sh bin/startup.sh

3)stop.sh

set -m
ps aux | grep /opt/apps/apache-tomcat-8.5.33/bin | grep -v grep | awk '{print $2}' | xargs -i kill -9 {}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值