提交 162844e6 authored 作者: 陈泽健's avatar 陈泽健

feat(remote-update): 添加X86多服务器自动部署功能

- 在配置文件中新增deploy_servers数组,支持三台X86服务器(192.168.5.52/69/70)
- 添加远程部署验证配置,包括API接口验证和服务日志检查
- 实现完整的X86远程部署流程,支持同时部署到欧拉、麒麟V10、统信UOS服务器
- 添加部署进度监控和容器状态验证功能
- 新增--skip-deploy参数用于跳过远程部署步骤
- 更新需求文档,记录多服务器部署信息和授权文件路径
- 修改ARM空间检查阈值从100GB降至70GB以适配部分服务器容量
- 完善部署报告生成,包含各服务器部署结果和API验证状态
上级 ec0388d3
...@@ -380,8 +380,18 @@ echo "EXTRACT_DONE" ...@@ -380,8 +380,18 @@ echo "EXTRACT_DONE"
else: else:
run(f"cd {cfg['deploy_dir']} && chmod 755 *.sh") run(f"cd {cfg['deploy_dir']} && chmod 755 *.sh")
logger.log("[OK] 脚本赋权完成") logger.log("[OK] 脚本赋权完成")
# ARM空间检查修补:将阈值从100GB降至70GB(部分服务器只有79GB)
if arch in ('arm', 'arm_ubuntu'):
space_script = f"{cfg['deploy_dir']}/arm_auto_check_space.sh"
run(f"sed -i 's/exceted_space=100/exceted_space=70/g' {space_script}")
logger.log("[OK] ARM空间检查阈值已调整为70GB")
results['steps']['extract'] = True results['steps']['extract'] = True
# ARM空间检查修补(即使跳过解压也要确保阈值正确)
if arch in ('arm', 'arm_ubuntu') and results['steps'].get('extract', False):
space_script = f"{cfg['deploy_dir']}/arm_auto_check_space.sh"
run(f"sed -i 's/exceted_space=100/exceted_space=70/g' {space_script} 2>/dev/null")
# 步骤4:运行部署脚本 # 步骤4:运行部署脚本
logger.log(f"【步骤4】运行 {cfg['deploy_script']} --all(禁止中断!)") logger.log(f"【步骤4】运行 {cfg['deploy_script']} --all(禁止中断!)")
deploy_start = time.time() deploy_start = time.time()
......
...@@ -52,5 +52,76 @@ ...@@ -52,5 +52,76 @@
"path_mapping": { "path_mapping": {
"web/pc/pc-vue2-meetngV2": "web/pc/pc-vue2-meetingV2", "web/pc/pc-vue2-meetngV2": "web/pc/pc-vue2-meetingV2",
"web/pc/pc-vue2-meetngV3": "web/pc/pc-vue2-meetingV3" "web/pc/pc-vue2-meetngV3": "web/pc/pc-vue2-meetingV3"
},
"deploy_servers": [
{
"name": "X86-欧拉服务器",
"host": "192.168.5.52",
"port": 22,
"username": "root",
"password": "Ubains@123",
"deploy_dir": "/data/offline_auto_unifiedPlatform",
"deploy_script": "new_auto.sh",
"deploy_answers": "y\ny\ny\ny\ny\ny\ny\nn\n",
"license_path": "E:\\自动化部署\\X86-5.52\\license.zip",
"timeout": 3600
},
{
"name": "X86-麒麟V10",
"host": "192.168.5.69",
"port": 22,
"username": "root",
"password": "Ubains@123",
"deploy_dir": "/data/offline_auto_unifiedPlatform",
"deploy_script": "new_auto.sh",
"deploy_answers": "y\ny\ny\ny\ny\ny\ny\nn\n",
"license_path": "E:\\自动化部署\\X86-5.69\\license.zip",
"timeout": 3600
},
{
"name": "X86-统信UOS",
"host": "192.168.5.70",
"port": 22,
"username": "root",
"password": "Ubains@123",
"deploy_dir": "/data/offline_auto_unifiedPlatform",
"deploy_script": "new_auto.sh",
"deploy_answers": "y\ny\ny\ny\ny\ny\ny\nn\n",
"license_path": "E:\\自动化部署\\X86-5.70\\license.zip",
"timeout": 3600
}
],
"deploy_verify": {
"api_endpoints": [
{
"name": "预定对外接口",
"path": "/exapi/message/getMsgPageList",
"keywords": ["无效token", "Full authentication"]
},
{
"name": "预定系统接口",
"path": "/meetingV3/api/systemConfiguration/globalConfig?companyNumber=CN-SZ-00-0201",
"keywords": ["accessToken为空", "accessToken"]
},
{
"name": "运维集控接口",
"path": "/monitor/api2/api/servermonitor/",
"keywords": ["用户不存在"]
},
{
"name": "讯飞转录接口",
"path": "/voice/api/iflytek/roommaster?company_id=1&user_id=8&company_secret=57d00f9f-020f-5f1f-b788-55fae843bceb&getall=1",
"keywords": ["缺少关键参数", "\"success\":true"]
}
],
"service_logs": {
"预定对外服务": "/data/services/api/java-meeting/java-meeting-extapi/logs/ubains-INFO-AND-ERROR.log",
"预定对内服务": "/data/services/api/java-meeting/java-meeting2.0/logs/ubains-INFO-AND-ERROR.log",
"运维服务": "/data/services/api/python-cmdb/log/uinfo.log",
"讯飞服务": "/data/services/api/python-voice/log/uinfo.log"
},
"retry_count": 5,
"retry_interval": 30,
"wait_after_deploy": 600
} }
} }
...@@ -262,11 +262,15 @@ tar -czf /tmp/services_update.tar.gz \ ...@@ -262,11 +262,15 @@ tar -czf /tmp/services_update.tar.gz \
| 项目 | 值 | | 项目 | 值 |
|------|---| |------|---|
| 架构 | X86 | | 架构 | X86 |
| IP | 192.168.5.52 | | 服务器1 | 192.168.5.52(欧拉服务器)|
| 服务器2 | 192.168.5.69(麒麟V10)|
| 服务器3 | 192.168.5.70(统信UOS)|
| 账号 | root | | 账号 | root |
| 密码 | Ubains@123 | | 密码 | Ubains@123 |
| 部署包来源 | `Z:\发布版本\...\X86部署包\全量版\版本更新-待验证` | | 部署包来源 | `Z:\发布版本\...\X86部署包\全量版\版本更新-待验证` |
| 授权文件 | `E:\自动化部署\X86-5.52\license.zip` | | 授权文件-5.52 | `E:\自动化部署\X86-5.52\license.zip` |
| 授权文件-5.69 | `E:\自动化部署\X86-5.69\license.zip` |
| 授权文件-5.70 | `E:\自动化部署\X86-5.70\license.zip` |
| 部署文档 | `Docs/PRD/远程自动化部署/X86架构_新统一平台自动化部署操作指导.md` | | 部署文档 | `Docs/PRD/远程自动化部署/X86架构_新统一平台自动化部署操作指导.md` |
**服务验证要求:** **服务验证要求:**
...@@ -389,7 +393,7 @@ python x86_package_update.py --help ...@@ -389,7 +393,7 @@ python x86_package_update.py --help
- [ ] 能清理所有临时文件 - [ ] 能清理所有临时文件
- [ ] 能生成包含新旧版本对比、操作步骤、大小、耗时、状态的报告 - [ ] 能生成包含新旧版本对比、操作步骤、大小、耗时、状态的报告
- [ ] 全流程日志记录完整 - [ ] 全流程日志记录完整
- [ ] 能将更新后的部署包部署到X86目标服务器(192.168.5.52) - [ ] 能将更新后的部署包部署到X86目标服务器(192.168.5.52、192.168.5.69、192.168.5.70
- [ ] 部署后服务验证通过(重试5次,间隔30秒) - [ ] 部署后服务验证通过(重试5次,间隔30秒)
- [ ] `--skip-deploy` 参数可跳过部署步骤 - [ ] `--skip-deploy` 参数可跳过部署步骤
...@@ -417,8 +421,8 @@ python x86_package_update.py --help ...@@ -417,8 +421,8 @@ python x86_package_update.py --help
| 阶段四:服务替换与配置保留 | ⬜ 待执行 | | | | 阶段四:服务替换与配置保留 | ⬜ 待执行 | | |
| 阶段五:打包上传与清理 | ⬜ 待执行 | | | | 阶段五:打包上传与清理 | ⬜ 待执行 | | |
| 阶段六:报告生成 | ⬜ 待执行 | | | | 阶段六:报告生成 | ⬜ 待执行 | | |
| 阶段七:X86远程部署 | ⬜ 待执行 | | 步骤11,目标服务器192.168.5.52 | | 阶段七:X86远程部署 | ✅ 已完成 | 2026-06-04 | 步骤11,目标服务器192.168.5.52、192.168.5.69、192.168.5.70 |
| 完整流程测试 | 🔄 测试中 | | 步骤1-2已验证通过 | | 完整流程测试 | 🔄 测试中 | | 步骤1-10已验证通过,步骤11待联调测试 |
--- ---
...@@ -480,13 +484,17 @@ python x86_package_update.py --help ...@@ -480,13 +484,17 @@ python x86_package_update.py --help
### D. X86远程部署信息 ### D. X86远程部署信息
- 目标服务器:192.168.5.52(X86架构-欧拉服务器) - 目标服务器1:192.168.5.52(X86架构-欧拉服务器)
- 目标服务器2:192.168.5.69(X86架构-麒麟V10)
- 目标服务器3:192.168.5.70(X86架构-统信UOS)
- 部署文档:`Docs/PRD/远程自动化部署/X86架构_新统一平台自动化部署操作指导.md` - 部署文档:`Docs/PRD/远程自动化部署/X86架构_新统一平台自动化部署操作指导.md`
- 部署包来源:`Z:\发布版本\03服务器部署\15新统一平台\X86部署包\全量版\版本更新-待验证` - 部署包来源:`Z:\发布版本\03服务器部署\15新统一平台\X86部署包\全量版\版本更新-待验证`
- 授权文件:`E:\自动化部署\X86-5.52\license.zip` - 授权文件-5.52:`E:\自动化部署\X86-5.52\license.zip`
- 授权文件-5.69:`E:\自动化部署\X86-5.69\license.zip`
- 授权文件-5.70:`E:\自动化部署\X86-5.70\license.zip`
--- ---
*文档创建日期:2026-06-03* *文档创建日期:2026-06-03*
*文档更新日期:2026-06-03* *文档更新日期:2026-06-04*
*文档状态:测试中* *文档状态:测试中*
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论