提交 271ab62c authored 作者: 陈泽健's avatar 陈泽健

docs(prd): 更新ARM自动更新部署包版本需求文档并新增X86环境更新需求,同步更新shell版本服务自检

- 修复ARM部署包需求文档中auth包路径错误
- 修复会议预定前端服务目录路径中的arn_offline_auto拼写错误
- 更新网盘目录路径从X86部署包改为ARM部署包
- 添加代码架构说明及共用脚本注意事项
- 新增X86自动更新环境版本需求文档
- 移除PowerShell脚本中被禁用的Shell模式选择选项
- 添加Shell脚本版配置文件与日志导出功能
上级 a5909acd
{
"test_server": {
"host": "192.168.5.44",
"port": 22,
"username": "root",
"password": "Ubains@123"
},
"target_servers": [
{
"name": "其他环境服务器",
"host": "192.168.5.46",
"port": 22,
"username": "root",
"password": "Ubains@123"
}
],
"services": {
"frontend": [
{"name": "ai包", "path": "web/pc/pc-vue2-ai", "config_file": "static/config.json"},
{"name": "后台包", "path": "web/pc/pc-vue2-backstage", "config_file": "static/config.json"},
{"name": "main包", "path": "web/pc/pc-vue2-main", "config_file": "static/config.json"},
{"name": "meetngV2包", "path": "web/pc/pc-vue2-meetngV2", "config_file": "static/config.json"},
{"name": "meetngV3包", "path": "web/pc/pc-vue2-meetngV3", "config_file": "static/config.json"},
{"name": "meetingControl包", "path": "web/pc/pc-vue2-meetingControl", "config_file": "static/config.json"},
{"name": "monitor包", "path": "web/pc/pc-vue2-moniter", "config_file": "static/config.json"},
{"name": "platform包", "path": "web/pc/pc-vue2-platform", "config_file": "static/config.json"},
{"name": "voice包", "path": "web/pc/pc-vue2-voice/pc-vue2-voice", "config_file": "static/config.json"},
{"name": "h5-meeting", "path": "web/h5/h5-uniapp-meeting", "config_file": "static/config.json"},
{"name": "h5-moniter", "path": "web/h5/h5-uniapp-moniter", "config_file": "static/config.json"},
{"name": "h5-platform-mobile", "path": "web/h5/h5-uniapp-platform/meeting-mobile", "config_file": "static/config.json"},
{"name": "h5-platform-platform-mobile", "path": "web/h5/h5-uniapp-platform/unified-platform-mobile", "config_file": "static/config.json"}
],
"backend_jar": [
{"name": "auth包", "path": "api/auth/auth-sso-auth", "file": "ubains-auth.jar"},
{"name": "gatway包", "path": "api/auth/auth-sso-gatway", "file": "ubains-gateway.jar"},
{"name": "system包", "path": "api/auth/auth-sso-system", "file": "ubains-modules-system.jar"},
{"name": "java2.0包", "path": "api/java-meeting/java-meeting2.0", "file": "ubains-meeting-inner-api-1.0-SNAPSHOT.jar"},
{"name": "java-extapi包", "path": "api/java-meeting/java-meeting-extapi", "file": "ubains-meeting-api-1.0-SNAPSHOT.jar"},
{"name": "java-scheduling包", "path": "api/java-meeting/java-message-scheduling", "file": "ubains-meeting-message-scheduling-1.0-SNAPSHOT.jar"},
{"name": "java-mqtt包", "path": "api/java-meeting/java-mqtt", "file": "ubains-meeting-mqtt-1.0-SNAPSHOT.jar"},
{"name": "java-quartz包", "path": "api/java-meeting/java-quartz", "file": "ubains-meeting-quartz-1.0-SNAPSHOT.jar"}
],
"backend_folder": [
{"name": "cmdb包", "path": "api/python-cmdb", "config_file": "cmdb/bus/config/settingbus.conf"},
{"name": "voice包", "path": "api/python-voice", "config_file": "uvoice/bus/config/settingbus.conf"}
]
},
"path_mapping": {
"web/pc/pc-vue2-meetngV2": "web/pc/pc-vue2-meetingV2",
"web/pc/pc-vue2-meetngV3": "web/pc/pc-vue2-meetingV3"
},
"containers": ["ujava2", "upython", "upython_voice"],
"service_base_dir": "/data/services"
}
此差异已折叠。
......@@ -2308,24 +2308,8 @@ function Main {
}
Write-Host ""
# 选择检测模式
Write-Host "==================================================================" -ForegroundColor Cyan
Write-Host " 请选择检测模式" -ForegroundColor Cyan
Write-Host "==================================================================" -ForegroundColor Cyan
Write-Host " [1] PowerShell模块模式 (默认,兼容性最好)"
Write-Host " [2] Shell脚本模式 (Linux服务器本地执行,性能更好)"
Write-Host "==================================================================" -ForegroundColor Cyan
$modeChoice = Read-Host "请输入模式编号 [默认: 1]"
if ($modeChoice -eq "2") {
$global:UseShellMode = $true
Write-Host "[模式] 已选择:Shell脚本模式" -ForegroundColor Green
}
else {
$global:UseShellMode = $false
Write-Host "[模式] 已选择:PowerShell模块模式" -ForegroundColor Green
}
Write-Host ""
# 检测模式:默认使用PowerShell模块模式(Shell脚本模式功能不完整,暂时屏蔽选择)
$global:UseShellMode = $false
# 检测平台类型
$platformType = Get-PlatformType -Server $server
......
......@@ -64,7 +64,7 @@
- static文件夹
### 后端服务目录:
- auth包:/data/services/api/auth/auth-sso-aut
- auth包:/data/services/api/auth/auth-sso-auth
- ubains-auth.jar
- gatway包:/data/services/api/auth/auth-sso-gatway
- ubains-gateway.jar
......@@ -91,7 +91,7 @@
## 打包服务器的服务目录信息
### 会议预定
#### 前端服务目录:
- ai包:/data/arn_offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-ai
- ai包:/data/arm_offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-ai
- index.html
- static文件夹
- 后台包:/data/arm_offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-backstage
......@@ -185,7 +185,7 @@
- uvoice文件夹后端包更新说明:
- 需要将原文件夹下bus/config/settingbus.conf覆盖到更新的服务包原路径。
- 所有服务更新操作完毕后需将/data/目录下的offline_auto_unifiedPlatform文件夹打压缩成tar.gz格式,并增加md5格式校验。
- 将tar.gz格式文件与md5格式文件拷贝至网盘目录:[Z:\发布版本\03服务器部署\15新统一平台\X86部署包\全量版\版本更新-待验证]
- 将tar.gz格式文件与md5格式文件拷贝至网盘目录:[Z:\发布版本\03服务器部署\15新统一平台\ARM部署包\全量版\版本更新-待验证]
- 拷贝到网盘目录后将打包服务器上的tar.gz和md5格式文件清理。
## 核验材料
......@@ -196,3 +196,23 @@
- 记录服务包的大小
- 操作耗时
- 更新成功或失败的状态
## 代码架构
本需求对应的脚本和配置文件位于 `AuxiliaryTool/ScriptTool/RemoteUpdate/` 目录下,与其他需求共享该目录,请注意区分,避免互相修改。
```
AuxiliaryTool/ScriptTool/RemoteUpdate/
├── x86_package_update.py ← 本需求使用的脚本(ARM自动更新部署包版本)
│ 同时也供以下需求使用,修改时需确保兼容:
│ - X86自动更新部署包版本
│ - 远程自动化部署(X86架构部署阶段)
├── config.json ← 本需求使用的配置文件(ARM配置项)
├── update_config.json ← 其他需求使用(X86自动更新环境版本),请勿修改
├── x86_env_update.py ← 其他需求使用(X86自动更新环境版本),请勿修改
└── reports/ ← 共用报告输出目录
```
**注意事项:**
- `x86_package_update.py` 为多个需求共用脚本,修改时必须确保不破坏其他需求的正常运行。
- `x86_env_update.py``update_config.json` 为"X86自动更新环境版本"需求专用,本需求不应修改。
- 如需新增功能,优先通过 `config.json` 配置化实现,避免修改共用脚本核心逻辑。
......@@ -196,3 +196,23 @@
- 记录服务包的大小
- 操作耗时
- 更新成功或失败的状态
## 代码架构
本需求对应的脚本和配置文件位于 `AuxiliaryTool/ScriptTool/RemoteUpdate/` 目录下,与其他需求共享该目录,请注意区分,避免互相修改。
```
AuxiliaryTool/ScriptTool/RemoteUpdate/
├── x86_package_update.py ← 本需求使用的脚本(X86自动更新部署包版本)
│ 同时也供以下需求使用,修改时需确保兼容:
│ - ARM自动更新部署包版本
│ - 远程自动化部署(X86架构部署阶段)
├── config.json ← 本需求使用的配置文件
├── update_config.json ← 其他需求使用(X86自动更新环境版本),请勿修改
├── x86_env_update.py ← 其他需求使用(X86自动更新环境版本),请勿修改
└── reports/ ← 共用报告输出目录
```
**注意事项:**
- `x86_package_update.py` 为多个需求共用脚本,修改时必须确保不破坏其他需求的正常运行。
- `x86_env_update.py``update_config.json` 为"X86自动更新环境版本"需求专用,本需求不应修改。
- 如需新增功能,优先通过 `config.json` 配置化实现,避免修改共用脚本核心逻辑。
# 自动更新环境版本
## 脚本
- `AuxiliaryTool/ScriptTool/RemoteUpdate`
## 服务器信息
### 测试服务器
- IP:192.168.5.44
- 端口:22
- 账号:root
- 密码:Ubains@123
### 其他环境服务器
- IP:192.168.5.46
- 端口:22
- 账号:root
- 密码:Ubains@123
## 测试服务器的服务目录信息
### 会议预定
#### 前端服务目录:
- ai包:/data/services/web/pc/pc-vue2-ai
- index.html
- static文件夹
- 后台包:/data/services/web/pc/pc-vue2-backstage
- index.html
- static文件夹
- main包:/data/services/web/pc/pc-vue2-main
- index.html
- static文件夹
- meetngV2包:/data/services/web/pc/pc-vue2-meetngV2
- index.html
- static文件夹
- meetngV3包:/data/services/web/pc/pc-vue2-meetngV3
- index.html
- static文件夹
- meetingControl:/data/services/web/pc/pc-vue2-meetingControl
- index.html
- static文件夹
- monitor包:/data/services/web/pc/pc-vue2-moniter
- index.html
- static文件夹
- module文件夹
- platform包:/data/services/web/pc/pc-vue2-platform
- index.html
- static文件夹
- temp文件夹
- voice包:/data/services/web/pc/pc-vue2-voice/pc-vue2-voice
- index.html
- static文件夹
- h5-meeting:/data/services/web/h5/h5-uniapp-meeting
- index.html
- static文件夹
- h5-moniter:/data/services/web/h5/h5-uniapp-moniter
- index.html
- static文件夹
- h5-platform-mobile:/data/services/web/h5/h5-uniapp-platform/meeting-mobile
- assets文件夹
- index.html
- static文件夹
- h5-platform-platform-mobile:/data/services/web/h5/h5-uniapp-platform/unified-platform-mobile
- index.html
- static文件夹
### 后端服务目录:
- auth包:/data/services/api/auth/auth-sso-auth
- ubains-auth.jar
- gatway包:/data/services/api/auth/auth-sso-gatway
- ubains-gateway.jar
- system包:/data/services/api/auth/auth-sso-system
- ubains-modules-system.jar
- java2.0包:/data/services/api/java-meeting/java-meeting2.0
- ubains-meeting-inner-api-1.0-SNAPSHOT.jar
- java-extapi包:/data/services/api/java-meeting/java-meeting-extapi
- ubains-meeting-api-1.0-SNAPSHOT.jar
- java-scheduling包:/data/services/api/java-meeting/java-message-scheduling
- ubains-meeting-message-scheduling-1.0-SNAPSHOT.jar
- java-mqtt包:/data/services/api/java-meeting/java-mqtt
- ubains-meeting-mqtt-1.0-SNAPSHOT.jar
- java-quartz包:/data/services/api/java-meeting/java-quartz
- ubains-meeting-quartz-1.0-SNAPSHOT.jar
- cmdb包:/data/services/api/python-cmdb
- cmdb文件夹
- UbainsDevOps文件夹
- voice包:/data/services/api/python-voice
- UbainsDevOps文件夹
- uvoice文件夹
## 其他环境服务器的服务目录信息
### 会议预定
#### 前端服务目录:
- ai包:/data/services/web/pc/pc-vue2-ai
- index.html
- static文件夹
- 后台包:/data/services/web/pc/pc-vue2-backstage
- index.html
- static文件夹
- main包:/data/services/web/pc/pc-vue2-main
- index.html
- static文件夹
- meetngV2包:/data/services/web/pc/pc-vue2-meetingV2
- index.html
- static文件夹
- meetngV3包:/data/services/web/pc/pc-vue2-meetingV3
- index.html
- static文件夹
- meetingControl:/data/services/web/pc/pc-vue2-meetingControl
- index.html
- static文件夹
- monitor包:/data/services/web/pc/pc-vue2-moniter
- index.html
- static文件夹
- module文件夹
- platform包:/data/services/web/pc/pc-vue2-platform
- index.html
- static文件夹
- temp文件夹
- voice包:/data/services/web/pc/pc-vue2-voice/pc-vue2-voice
- index.html
- static文件夹
- h5-meeting:/data/services/web/h5/h5-uniapp-meeting
- index.html
- static文件夹
- h5-moniter:/data/services/web/h5/h5-uniapp-moniter
- index.html
- static文件夹
- h5-platform-mobile:/data/services/web/h5/h5-uniapp-platform/meeting-mobile
- assets文件夹
- index.html
- static文件夹
- h5-platform-platform-mobile:/data/services/web/h5/h5-uniapp-platform/unified-platform-mobile
- index.html
- static文件夹
### 后端服务目录:
- auth包:/data/services/api/auth/auth-sso-auth
- ubains-auth.jar
- gatway包:/data/services/api/auth/auth-sso-gatway
- ubains-gateway.jar
- system包:/data/services/api/auth/auth-sso-system
- ubains-modules-system.jar
- java2.0包:/data/services/api/java-meeting/java-meeting2.0
- ubains-meeting-inner-api-1.0-SNAPSHOT.jar
- java-extapi包:/data/services/api/java-meeting/java-meeting-extapi
- ubains-meeting-api-1.0-SNAPSHOT.jar
- java-scheduling包:/data/services/api/java-meeting/java-message-scheduling
- ubains-meeting-message-scheduling-1.0-SNAPSHOT.jar
- java-mqtt包:/data/services/api/java-meeting/java-mqtt
- ubains-meeting-mqtt-1.0-SNAPSHOT.jar
- java-quartz包:/data/services/api/java-meeting/java-quartz
- ubains-meeting-quartz-1.0-SNAPSHOT.jar
- cmdb包:/data/services/api/python-cmdb
- cmdb文件夹
- UbainsDevOps文件夹
- voice包:/data/services/api/python-voice
- UbainsDevOps文件夹
- uvoice文件夹
## 更新操作流程
- 更新方式:每次全量更新所有服务包
- 传输方式:通过SCP从测试服务器传输到其他环境服务器
1. 在测试服务器上提取所有服务包,压缩成tar.gz格式(命名为`services_update.tar.gz`),通过SCP传输到其他环境服务器的`/data/`目录下。
2. 在其他环境服务器上解压缩tar.gz格式包。
3. 备份其他环境服务器上原服务文件,然后执行服务包更新替换操作。
4. 更新替换完成后,使用其他环境服务器原配置文件进行恢复:
- 前端包:恢复`static/config.json`文件(从原服务包static目录中取回)
- cmdb包:恢复`bus/config/settingbus.conf`文件(从原服务包对应路径取回)
- uvoice包:恢复`bus/config/settingbus.conf`文件(从原服务包对应路径取回)
5. 重启服务:
- 执行`docker restart ujava2 upython upython_voice`
- 检测容器启动是否正常(通过进程检测:`docker exec ujava2 ps -ef``docker exec upython ps -ef``docker exec upython_voice ps -ef`
6. 清理临时文件:
- 清理测试服务器上的临时打包文件
- 清理其他环境服务器上的临时解压文件和压缩包
7. 生成报告文件,存储到本地执行脚本的机器上。
## 异常处理
- 更新前检查:
- 检查目标服务器磁盘空间是否充足
- 检查SSH连接是否正常
- 检查目标服务器上Docker服务是否运行
- 覆盖失败处理:
- 在服务包覆盖过程中如果覆盖失败(如中断),立即停止本次更新操作,输出失败的文件名和失败原因。
- 因更新前已备份原服务文件,覆盖失败后可通过备份文件进行回滚恢复。
- 网络中断处理:
- SCP传输过程中网络中断,支持断点重传或重新执行传输操作。
- SSH连接断开后可重新执行更新操作来恢复。
- 覆盖中断后可重新执行覆盖操作来恢复。
## 更新说明
- 前端包更新说明:
- 更新前备份其他环境服务器上原`static/config.json`文件。
- 覆盖新服务包后,将原`static/config.json`文件恢复到新服务包的`static`目录下。
- jar格式后端包更新说明:
- 直接覆盖更新,无需恢复配置文件。
- cmdb文件夹后端包更新说明:
- 更新前备份原文件夹下`bus/config/settingbus.conf`文件。
- 覆盖新服务包后,将原`bus/config/settingbus.conf`恢复到新服务包原路径。
- uvoice文件夹后端包更新说明:
- 更新前备份原文件夹下`bus/config/settingbus.conf`文件。
- 覆盖新服务包后,将原`bus/config/settingbus.conf`恢复到新服务包原路径。
- 需要恢复的配置文件清单:`config.json``settingbus.conf`(无其他配置文件需要恢复)。
- 测试服务器与其他环境服务器存在路径差异(如`pc-vue2-meetngV2``pc-vue2-meetingV2`),脚本中需按照本文档中各服务器目录信息分别处理。
## 核验材料
1. 所有的操作需日志记录说明
2. 所有操作结束后需输出报告说明,报告以md格式存储到本地执行脚本的机器上。
- ~~需记录新旧版本对比~~(暂不实现,后续版本补充)
- 需记录所有操作的详细步骤
- 记录服务包的大小
- 操作耗时
- 更新成功或失败的状态
## 代码架构
本需求对应的脚本和配置文件位于 `AuxiliaryTool/ScriptTool/RemoteUpdate/` 目录下,与其他需求共享该目录,请注意区分,避免互相修改。
```
AuxiliaryTool/ScriptTool/RemoteUpdate/
├── x86_env_update.py ← 本需求使用的脚本(X86自动更新环境版本)
├── update_config.json ← 本需求使用的配置文件
├── x86_package_update.py ← 其他需求使用(X86/ARM自动更新部署包版本、远程自动化部署),请勿修改
├── config.json ← 其他需求使用(X86/ARM自动更新部署包版本),请勿修改
└── reports/ ← 共用报告输出目录
```
**注意事项:**
- `x86_env_update.py` 为本需求专用脚本,独立运行,不影响其他需求。
- `x86_package_update.py``config.json` 为"自动更新部署包版本"和"远程自动化部署"需求使用,本需求不应修改。
- 如需扩展(如支持多台目标服务器、ARM架构环境更新),通过 `update_config.json` 配置化实现。
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论