|
|
4 天前 | |
|---|---|---|
| .. | ||
| README.md | 4 天前 | |
| deploy.sh | 4 天前 | |
| health-check.sh | 4 天前 | |
| iot-platform.service | 4 天前 | |
| setup-server.sh | 4 天前 | |
本项目使用 systemd 管理进程,通过 deploy.sh 脚本实现一键构建、上传、备份、健康检查和自动回滚。
/opt/iot-platform/iot-platform/opt/iot-platform/
├── iot-platform.jar # 当前运行版本
├── .env # 环境变量(密码、凭据)
├── backup/ # 版本备份(自动创建)
├── bin/
│ ├── deploy.sh # 一键部署脚本(本地运行)
│ └── health-check.sh # 健康检查脚本
├── config/ # 线上专属配置
└── logs/ # 日志输出
如果服务器上还没有安装 systemd 服务,执行初始化:
cd deploy
scp setup-server.sh root@47.104.204.180:/tmp/
scp iot-platform.service root@47.104.204.180:/tmp/
scp ../.env root@47.104.204.180:/tmp/iot-platform.env
ssh root@47.104.204.180 "chmod +x /tmp/setup-server.sh && /tmp/setup-server.sh"
cd deploy
./deploy.sh --build
流程:
mvn clean package/actuator/health)cd deploy
./deploy.sh --jar ../iot-platform/target/iot-platform.jar
cd deploy
./deploy.sh --jar /path/to/ci/artifacts/iot-platform.jar
.env 文件位于项目根目录和服务器 /opt/iot-platform/.env,包含所有敏感凭据:
# MySQL
MYSQL_USERNAME=root
MYSQL_PASSWORD="..."
# Redis
REDIS_PASSWORD=
# MQTT
MQTT_USERNAME=...
MQTT_PASSWORD=...
# TDengine
TDENGINE_USERNAME=root
TDENGINE_PASSWORD=taosdata
# Druid 监控
DRUID_STAT_ENABLED=false
DRUID_USERNAME=ruoyi
DRUID_PASSWORD=...
注意:.env 文件已加入 .gitignore,切勿提交到 Git。
# 查看状态
systemctl status iot-platform
# 重启
systemctl restart iot-platform
# 停止
systemctl stop iot-platform
# 查看日志
journalctl -u iot-platform -f
# 查看历史日志
journalctl -u iot-platform --since "1 hour ago"
# 在服务器上执行
bash /opt/iot-platform/bin/health-check.sh localhost 8887 30
# 或从本地检查
curl -s http://47.104.204.180:8887/actuator/health
健康检查策略:
/actuator/health(Spring Boot Actuator)如果部署失败,deploy.sh 会自动回滚到上一个版本。
手动回滚:
ssh root@47.104.204.180
systemctl stop iot-platform
ls /opt/iot-platform/backup/ # 查看可用备份
cp /opt/iot-platform/backup/iot-platform-XXXX.jar /opt/iot-platform/iot-platform.jar
systemctl start iot-platform
| 文件 | 说明 |
|---|---|
deploy.sh |
一键部署脚本(本地执行) |
setup-server.sh |
服务器初始化脚本(服务器执行) |
health-check.sh |
健康检查脚本 |
iot-platform.service |
systemd 服务定义 |