Alibaba cloud toolkit 自动部署

官方介绍:集开发、测试、诊断、部署为一体的免费本地 IDE 插件,帮助开发者真正实现一键式研发部署。提升研发部署速度数倍以上,大幅降低研发成本。
官方链接

1. IDEA 安装 Alibaba cloud toolkit

官方传送门
官方图文并茂,这里就不重复了。

2. 部署应用到Linux服务器

官方传送门
官方的截图可能是旧版本,所以这里就越俎代庖,写下自己的自动部署的一些步骤。

预计达到的效果:

  • Maven打包,过程中如果出现异常,直接退出。
  • 备份服务器的包,备份后缀使用时间(年月日时分秒),并且要记录备份的名称,异常时回滚使用。
  • 上传包到服务器
  • 终止正在运行的项目,使用最新的包启动项目,告知启动是否成功,未成功,回滚到上一版本启动。

2.1 添加服务器

操作步骤:

  • 在IntelliJ IDEA顶部菜单栏中选择Tools > Alibaba Cloud > Alibaba Cloud View > Host。
  • 在弹出的Host页签中单击Add Host。
  • 在Add Host对话框中设置Host List、Username、Password等参数,完成后单击Add。

添加主机

2.2 配置自动部署

操作:

  • 在IntelliJ IDEA顶部菜单中选择Alibaba Cloud > Deploy to Host…。
  • 在Deploy to Host对话框设置部署参数,然后单击Run

还记得我们的目标吗? 第一步是要备份原来的系统,方法是部署前,运行服务器上的备份脚本,设置参考如下图:

Cloud ToolKit 备份脚本
参考的备份脚本:

#!/bin/bash

# 源JAR包路径
SOURCE_JAR_PATH="/your/path/your_app.jar"

# 备份目录
BACKUP_DIR="/your/backup/path"

# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR

# 备份JAR包
BACKUP_FILE="${BACKUP_DIR}/your_app.jar"
cp $SOURCE_JAR_PATH $BACKUP_FILE

# 检查备份是否成功
if [ $? -eq 0 ]; then
    echo "JAR包备份成功: $BACKUP_FILE"
else
    echo "JAR包备份失败"
fi

第二步,打包上传最新的jar包,并且重启,配置参考如下图:
在这里插入图片描述
要注意两点:

  • 打包命令一定要确定好,否则会报错。 比如我的项目是聚合项目,发布的是fancoding-web
  • 部署后,运行的脚本或者命令根据自己的需求去编写,我的只是参考。

restart.sh 如下:

#!/bin/bash

# 1.停应用
JAR_NAME="fancoding.jar"

# Find the process ID (PID) of the JAR
pid=$(ps aux | grep "$JAR_NAME" | grep -v "grep" | awk '{print $2}')

# Check if the process is running
if [ -z "$pid" ]; then
    echo "No process found for $JAR_NAME"
else
    echo "Stopping process $JAR_NAME for $JAR_NAME"
    kill $pid
fi



# 2. 启应用

# your app info 
JAR_Path="/data/webapp/test/fancoding.jar"
JAR_LOG="/data/webapp/test/app.log"
JAR_PORT=9700

java -jar  ${JAR_Path} >> ${JAR_LOG} 2>&1  &

echo "正在启动${jar_name}应用 "

# 获取Java程序的进程ID
JAVA_PID=$!

# 等待Java程序启动完成,最多等待60秒
timeout=60

IS_START=1

while [ $timeout -gt 0 ]
do
  # 检查端口是否被监听
  if netstat -tuln | grep ":${JAR_PORT}" >/dev/null; then
          echo "${JAR_NAME}程序启动成功。(PID : $JAVA_PID)"
    break
  else
    if [ $timeout -eq 3 ];then
        echo "${JAR_NAME}程序启动超时,请稍后查看日志确定是否启动成功,日志路径 ${JAR_LOG}" 
        IS_START=0
    else
        echo "${JAR_NAME}程序正在启动...."
    fi
  fi
  sleep 3
  timeout=$((timeout - 3))
done



# 3.备份的应用重命名
# 当然可以没有这块
if [ ${IS_START} = 1 ]; then
        TIMESTAMP=$(date +%Y%m%d%H%M%S)
        SOURCE_FILE="/data/webapp/test/backup/fancoding.jar"
        TARGET_FILE="/data/webapp/test/backup/fancoding.jar.bak${TIMESTAMP}"
        mv ${SOURCE_FILE} ${TARGET_FILE}
        echo "备份成功"
else
        echo "项目可能启动失败,还原jar包"
        rm #{JAR_Path}
        cp ${SOURCE_FILE} #{JAR_Path}
        java -jar  ${JAR_Path} >> ${JAR_LOG} 2>&1  &
        rm ${SOURCE_FILE}
        ehco "已删除此备份"

fi

3. Alibaba cloud toolkit 帮你做了什么?

集成了自动打包、自动上传部署、自动运行。省略了手工打包,上传包,备份应用,重启应用。

节约时间,节约精力,降本增效!

备注:
restart.sh = start.sh + start.sh
如果需要单独的脚本参考,可以看看 用shell脚本启停项目

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
阿里云工具包(Alibaba Cloud Toolkit)是一款用于集成开发环境(IDE)的插件,旨在帮助开发者更方便地使用阿里云服务。它提供了丰富的功能和命令,可以帮助开发者在IDE中管理和操作阿里云资源。 以下是一些常用的 Alibaba Cloud Toolkit 命令: 1. 配置阿里云账号:通过 `aliyun configure` 命令可以配置阿里云账号信息,包括 Access Key ID、Access Key Secret、默认地域等。 2. 创建和部署应用:使用 `aliyun create` 命令可以创建一个新的应用,并将其部署到阿里云上。该命令会引导你选择应用类型、运行环境等,并自动完成应用的创建和部署过程。 3. 查看应用状态:通过 `aliyun status` 命令可以查看当前应用的状态,包括运行状态、访问地址等信息。 4. 打开应用日志:使用 `aliyun logs` 命令可以打开应用的日志文件,方便查看和分析应用的运行情况。 5. 管理云资源:通过 `aliyun resource` 命令可以管理阿里云上的各种资源,包括虚拟机、数据库、负载均衡等。你可以使用该命令创建、删除、启动、停止等操作。 6. 配置云服务:使用 `aliyun service` 命令可以配置阿里云上的各种云服务,包括云监控、云存储、消息队列等。你可以使用该命令配置服务的参数、订阅通知等。 以上是一些常用的 Alibaba Cloud Toolkit 命令,你可以根据自己的需求选择相应的命令进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值