SpringBoot项目一键远程部署
   软件工程   0 评论   1138 浏览

SpringBoot项目一键远程部署

   软件工程   0 评论   1138 浏览

必要性

首先,如果你的项目属于敏捷形开发,又或者是不断的重复优化、升级、上线的步骤,那我非常推荐你使用该方式个性化一键部署你的项目到服务器上,可以不必使用繁杂的DevOps流水线和Jenkins。

步骤

  1. 在项目根路径创建后缀为sh的remote_deploy.sh文件,并粘贴以下代码。
  2. 需要修改SERVER_IP为你要部署的服务器ip,修改2288为你的服务器ssh端口默认22。
  3. 如果在pom.xml中你的project中的version包名不是0.0.1-SNAPSHOT则修改xxx-0.0.1-SNAPSHOT.jar。
  4. 确保你的mvn环境、git环境和ssh环境正常使用。
  5. 在服务器端生成免密码秘钥,配置服务器ssh,并下载到项目根目录用以免密使用ssh,具体操作如下:
ssh-keygen -t rsa -b 2048 -v
#回车到结束
 
ls ~/.ssh/
mv ~/.ssh/id_rsa ~/.ssh/id_rsa.pem
chmod 700 ~/.ssh/
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
nano /etc/ssh/sshd_config
 
=====================
AuthorizedKeysFile .ssh/authorized_keys
#添加下面这两行
RSAAuthentication yes
PubkeyAuthentication yes
========================== 

service sshd restart
去/root/.ssh下载id_rsa.pem,可以直接执行如下命令下载:
sz /root/.ssh/id_rsa.pem
  1. 如果都可以后即可在项目根路径文件夹右键Git Bash Here,执行./remote_deploy.sh,即将本地项目打包上传重kill部署一键操作。

你也可以在IDEA设置中->工具->终端->Shell路径改为Git的bash.exe路径,然后添加Shell Script插件即可快速执行sh文件。

remote_deploy.sh

#!/bin/sh

echo '---------------开始自动部署----------------'

# 项目根目录
ROOT_PATH=$(cd $(dirname $0);cd .; pwd)

# 项目名称
PROJECT_NAME=AliPan

# LINUX部署目录
DEPLOY_PATH=root

# 服务器地址
SERVER_IP=119.91.xxx.xx

echo '---------------项目本地路径---------------'

echo ${ROOT_PATH} && cd ${ROOT_PATH}

echo '---------------开始项目打包----------------'

mvn clean package -Dmaven.test.skip=true

mvn package -Dmaven.test.skip=true

mv target/${PROJECT_NAME}-0.0.1-SNAPSHOT.jar target/${PROJECT_NAME}.jar

echo '---------------开始上传项目---------------'

scp -r -i id_rsa.pem -P 2288 target/${PROJECT_NAME}.jar root@${SERVER_IP}:/${DEPLOY_PATH}

echo '---------------kill源进程---------------'

ssh -i id_rsa.pem -p 2288 root@${SERVER_IP} << EOF

cd /${DEPLOY_PATH};

ps -ef | grep ${PROJECT_NAME}.jar | grep -v 'grep' | cut -c 9-15 | xargs kill -s 9

echo '---------------启动项目中---------------'

nohup java -jar -Xmx200m ${PROJECT_NAME}.jar >> ${PROJECT_NAME}.out  &

tail -f -n 50 ${PROJECT_NAME}.out

EOF

本文由 RawChen 发表, 最后编辑时间为:2022-03-23 17:59
如果你觉得我的文章不错,不妨鼓励我继续写作。

发表评论
选择表情
Top