提交 9870d0bd authored 作者: 陈泽健's avatar 陈泽健

feat(script): 增强服务自检与自动化打包功能

- 修复服务自检脚本中的错别字和多余字符
- 新增配置文件IP地址检测功能,支持传统平台与新统一平台
- 实现运维集控系统和语音转录系统的完整打包逻辑
- 更新打包脚本中系统选择与类型判断的准确性
- 完善自动打包上传需求文档,补充语音转录系统打包细节
- 优化服务自检需求文档中的功能状态标记与描述
- 增加容器镜像打包及服务包打包的详细路径配置
- 改进脚本中条件判断和日志输出逻辑
上级 6fdb8209
# 容器升级需求说明文档
## 📋 概述
本脚本主要用于将主服务器上根据不同系统要求进行更新自动化部署包程序,压缩后上传至公司网盘:
1. **`server_pakage_upload.sh`**: 脚本路径:E:\GithubData\自动化\ubains-module-test\辅助工具\脚本工具\自动化部署打包上传\server_pakage_upload.sh
### 背景
目前系统支持多个部署系统的打包,需要区分两种平台环境:
- **新统一平台**:使用 `/data/` 目录结构
## 🎯 功能实现总览
### 打包脚本 (`pakage_upload.sh`)
需求功能点:
1、询问用户选择需要打包的系统类型(会议预定系统、运维集控系统、语音转录系统、电子桌牌系统、无纸化信令服务)。✅ 已完成待验证
2、根据选择的系统类型,执行相应的打包操作。
- 会议预定系统:前后端服务包 ✅ 已完成待验证、容器镜像包 ✅ 已完成待验证
- 运维集控系统:前后端服务包、容器镜像包
- 语音转录系统:前后端服务包、容器镜像包
- 电子桌牌系统:前后端服务包、容器镜像包
- 无纸化信令服务:前后端服务包、容器镜像包
3、打包成tar.gz格式并增加md5格式校验后,将打包后的文件上传至公司网盘。✅ 已完成待验证
#### 详细功能描述:
1、询问用户选择需要打包的系统类型:
- 使用 `select` 命令,将系统类型列表作为选项,让用户进行选择。
2、根据选择的系统类型,执行相应的打包操作:
- 自动化部署包路径:'/data/offline_auto_unifiedPlatform'(暂时不区分系统名称)
- 会议预定系统:
前后端服务包:
1、将/data/services/api/auth/auth-sso-auth目录下的jar包更新中至/data/offline_auto_unifiedPlatform/data/services/api/auth/auth-sso-auth目录下
2、将/data/services/api/auth/auth-sso-gatway目录下的jar包更新中至/data/offline_auto_unifiedPlatform/data/services/api/auth/auth-sso-gatway目录下
3、将/data/services/api/auth/auth-sso-system目录下的jar包更新中至/data/offline_auto_unifiedPlatform/data/services/api/auth/auth-sso-system目录下
4、将/data/services/api/java-meeting/java-meeting2.0目录下的jar包更新中至/data/offline_auto_unifiedPlatform/data/services/api/java-meeting/java-meeting2.0目录下
5、将/data/services/api/java-meeting/java-meeting3.0目录下的jar包更新中至/data/offline_auto_unifiedPlatform/data/services/api/java-meeting/java-meeting3.0目录下
6、将/data/services/api/java-meeting/java-meeting-extapi目录下的jar包更新中至/data/offline_auto_unifiedPlatform/data/services/api/java-meeting/java-meeting-extapi目录下
7、将/data/services/api/java-meeting/java-message-scheduling目录下的jar包更新中至/data/offline_auto_unifiedPlatform/data/services/api/java-meeting/java-message-scheduling目录下
8、将/data/services/api/java-meeting/java-mqtt目录下的jar包更新中至/data/offline_auto_unifiedPlatform/data/services/api/java-meeting/java-mqtt目录下
9、将/data/services/api/java-meeting/java-quartz目录下的jar包更新中至/data/offline_auto_unifiedPlatform/data/services/api/java-meeting/java-quartz目录下
10、将/data/services/web/pc/pc-vue2-ai目录下的static文件夹、index.html文件更新中至/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-ai目录下
11、将/data/services/web/pc/pc-vue2-backstage目录下的static文件夹、index.html文件更新中至/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-backstage目录下
12、将/data/services/web/pc/pc-vue2-main目录下的static文件夹、index.html文件和js文件更新中至/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-main目录下
13、将/data/services/web/pc/pc-vue2-meetingControl目录下的static文件夹、index.html文件更新中至/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-meetingControl目录下
14、将/data/services/web/pc/pc-vue2-meetngV2目录下的static文件夹、index.html文件和js文件更新中至/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-meetngV2目录下
15、将/data/services/web/pc/pc-vue2-meetngV3目录下的static文件夹、index.html文件和js文件更新中至/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-meetngV3目录下
16、将/data/services/web/pc/pc-vue2-platform目录下的static文件夹、index.html文件和temp文件夹更新中至/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-platform目录下
容器镜像包:
1、将/data/temp目录下的docker-20.10.7.tgz和docker.service和docker文件夹更新至/data/offline_auto_unifiedPlatform/data/temp目录下
2、将/data/temp目录下的umysql.tar.gz、devops_voice.sql、huazhao2.sql、nacos_mysql.sql、offline.sql更新至/data/offline_auto_unifiedPlatform/data/temp目录下
3、将/data/temp目录下的redis8.2.2.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
4、将/data/temp目录下的uemqx5.8.4.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
5、将/data/temp目录下的ufastdfs.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
6、将/data/temp目录下的nacos-server-v2.5.2.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
7、将/data/temp目录下的nginx-1.29.3.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
8、将/data/temp目录下的chrony.conf更新至/data/offline_auto_unifiedPlatform/data/temp目录下
9、将/data/temp目录下的jdk-8u472-linux-x64.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
10、将/data/temp目录下的java1.8.0_472.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
- 运维集控系统:
前后端服务包:
1、将/data/services/api/python-cmdb目录下的cmdb和UbainsDevOps文件夹更新至/data/offline_auto_unifiedPlatform/data/services/api/python-cmdb
3、将/data/services/web/pc/pc-vue2-moniter/目录下的index.html、module文件夹和static文件夹更新中至/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-moniter目录下
容器镜像包:
1、将/data/temp目录下的docker-20.10.7.tgz和docker.service和docker文件夹更新至/data/offline_auto_unifiedPlatform/data/temp目录下
2、将/data/temp目录下的umysql.tar.gz、devops_voice.sql、huazhao2.sql、nacos_mysql.sql、offline.sql更新至/data/offline_auto_unifiedPlatform/data/temp目录下
3、将/data/temp目录下的redis8.2.2.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
4、将/data/temp目录下的uemqx5.8.4.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
5、将/data/temp目录下的ufastdfs.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
6、将/data/temp目录下的nacos-server-v2.5.2.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
7、将/data/temp目录下的nginx-1.29.3.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
8、将/data/temp目录下的chrony.conf更新至/data/offline_auto_unifiedPlatform/data/temp目录下
9、将/data/temp目录下的jdk-8u472-linux-x64.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
10、将/data/temp目录下的python_v15.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
11、将/data/temp目录下的python_v15.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
3、打包成tar.gz格式并增加md5格式校验后,将打包后的文件上传至公司网盘。
将/data/offline_auto_unifiedPlatform目录打包成tar.gz格式并增加md5格式校验后,将打包后的文件上传至公司网盘。
\ No newline at end of file
......@@ -14,6 +14,7 @@
## 🎯 功能实现总览
### 服务自检 (`check_server_health.ps1`)
脚本路径:E:\GithubData\自动化\ubains-module-test\辅助工具\脚本工具\服务自检\check_server_health.ps1
#### 检测需求
......@@ -84,7 +85,7 @@
##### 服务器资源分析(✅ 已实现):
检查目标服务器的磁盘空间情况、内存使用情况、cpu使用情况、防火墙开放端口情况、服务器架构以及操作系统记录
##### 服务日志导出(❌ 未实现):
##### 服务日志导出(✅ 已实现):
将目标服务器上的服务日志采集,需判断传统平台还是新统一平台
传统平台:
如果有ujava容器:
......@@ -112,3 +113,60 @@
8、将/data/services/api/java-meeting/java-mqtt/logs目录下的ubains-INFO-AND-ERROR.log日志文件导出命名为MQTT_ubains-INFO-AND-ERROR.log
9、将/data/services/api/java-meeting/java-quartz/logs目录下的ubains-INFO-AND-ERROR.log日志文件导出命名为定时任务_ubains-INFO-AND-ERROR.log
##### 配置文件IP检测(✅ 已实现)
检测目标服务器上的配置文件中的IP地址配置是否正确为目标服务器IP,需判断传统平台还是新统一平台
传统平台:
如果有ujava容器:
1、检测/var/www/java/api-java-meeting2.0/config目录下的yml、properties、js格式的配置文件中的IP地址
2、检测/var/www/java/external-meeting-api/config目录下的yml、properties、js格式的配置文件中的IP地址
3、检测/var/www/java/ubains-web-2.0/static目录下的config.json配置文件的IP地址
4、检测/var/www/java/ubains-web-admin/static目录下的config.json配置文件的IP地址
5、检测/var/www/java/ubains-web-h5/static/h5目录下的config.js或config.json配置文件的IP地址
6、检测/var/www/java/nginx-conf.d目录下的conf配置文件中的IP地址
如果有upython容器:
1、检测/var/www/html目录下的conf配置文件的IP地址
2、检测/var/www/html/nginx-conf目录下的conf配置文件的IP地址
3、检测/var/www/html/web-vue-rms/static文件夹下的config.json配置文件的IP地址
4、检测/var/www/html/web-vue-h5/static/h5目录下的config.js或config.json配置文件的IP地址
新统一平台:
如果有ujava容器:
1、检测/data/services/api/auth/auth-sso-auth/config目录下的yml、properties、js、json、conf格式文件中IP地址
2、检测/data/services/api/auth/auth-sso-gatway/config目录下的yml、properties、js、json、conf格式文件中IP地址
3、检测/data/services/api/auth/auth-sso-system/config目录下的yml、properties、js、json、conf格式文件中IP地址
4、检测/data/services/api/java-meeting/java-meeting2.0/config目录下的yml、properties、js、json、conf格式文件中IP地址
5、检测/data/services/api/java-meeting/java-meeting3.0/config目录下的yml、properties、js、json、conf格式文件中IP地址
6、检测/data/services/api/java-meeting/java-meeting-extapi/config目录下的yml、properties、js、json、conf格式文件中IP地址
7、检测/data/services/api/java-meeting/java-message-scheduling/config目录下的yml、properties、js、json、conf格式文件中IP地址
8、检测/data/services/api/java-meeting/java-mqtt/config目录下的yml、properties、js、json、conf格式文件中IP地址
9、检测/data/services/api/java-meeting/java-quartz/config目录下的yml、properties、js、json、conf格式文件中IP地址
如果有upython容器:
1、/data/services/api/python-cmdb目录下的yml、properties、js、json、conf格式文件中IP地址
前端配置文件检测:
1、检测/data/services/web/pc/pc-vue2-ai目录下的js、json、conf格式文件中IP地址
2、检测/data/services/web/pc/pc-vue2-backstage目录下的js、json、conf格式文件中IP地址
3、检测/data/services/web/pc/pc-vue2-editor目录下的js、json、conf格式文件中IP地址
4、检测/data/services/web/pc/pc-vue2-main目录下的js、json、conf格式文件中IP地址
5、检测/data/services/web/pc/pc-vue2-meetingControl目录下的js、json、conf格式文件中IP地址
6、检测/data/services/web/pc/pc-vue2-meetngV2目录下的js、json、conf格式文件中IP地址
7、检测/data/services/web/pc/pc-vue2-meetngV3目录下的js、json、conf格式文件中IP地址
8、检测/data/services/web/pc/pc-vue2-moniter目录下的js、json、conf格式文件中IP地址
9、检测/data/services/web/pc/pc-vue2-platform目录下的js、json、conf格式文件中IP地址
10、检测/data/services/web/pc/pc-vue2-voice目录下的js、json、conf格式文件中IP地址
中间件配置文件检测:
1、检测/data/middleware/nginx/config目录下的conf格式文件中的IP地址
注意:如果遇到有172.17.0.1、127.0.0.1的IP地址以及和目标服务器IP地址一致的需判断为正确!检测日志需要打印出配置文件的路径,不要进行修改IP的操作!日志需会更简洁明了!
##### 服务器NTP服务检测(❌ 待实现):
检测目标服务器上的ntp服务是否开启并能够正确进行同步时间操作,ntp服务应该分为:ntp和chronyd两种,并且需要检测目标服务器时间和北京时间是否一致。
注意:不要做ntp配置文件的修改操作,此脚本只做检测!
##### 服务自检报告输出
将服务自检的所有操作步骤与结果输出到日志文件中!
\ No newline at end of file
......@@ -143,7 +143,7 @@ $UpythonVoicePorts = @(
@{ Port = 1883; Process = "mosquitto"; Description = "MQTT Broker 服务" }
@{ Port = 8000; Process = "uwsgi"; Description = "uWSGI 应用服务" }
@{ Port = 9001; Process = "mosquitto"; Description = "MQTT WebSocket 服务" }
@{ Port = 11211; Process = "memcached"; Description = "Memcached 缓服务" }
@{ Port = 11211; Process = "memcached"; Description = "Memcached 缓缓冲服务" }
@{ Port = 8080; Process = "nginx"; Description = "Nginx 代理服务 (8080)" }
@{ Port = 80; Process = "nginx"; Description = "Nginx Web 服务 (80)" }
)
......@@ -169,7 +169,7 @@ $UpythonOldPlatformPorts = @(
@{ Port = 8443; Process = "nginx"; Description = "Nginx HTTPS 服务 (8443)" }
@{ Port = 8000; Process = "uwsgi"; Description = "uWSGI 应用服务" }
@{ Port = 8002; Process = "httpd"; Description = "Apache HTTPD 服务" }
@{ Port = 11211; Process = "memcached"; Description = "Memcached 缓服务" }
@{ Port = 11211; Process = "memcached"; Description = "Memcached 缓服务" }
)
# DNS 测试域名列表
......@@ -1275,7 +1275,7 @@ function Test-ServerResources {
return $results
}
y
# ================================
# 服务日志导出
# ================================
......@@ -1589,7 +1589,7 @@ function Show-HealthReport {
}
# upython 服务统计
if ($UpythonResults -and $UpythonResults.Count -gt 0) {
if ($UpythonResults -and $UpythonResults.Count -gt 0) {
Write-Host "【upython 容器服务状态】" -ForegroundColor Yellow
foreach ($r in $UpythonResults) {
$totalServices++
......@@ -1737,6 +1737,131 @@ function Show-HealthReport {
Write-Host ""
}
# ================================
# 配置文件IP检测 - 传统平台
# ================================
function Check-TraditionalPlatformIPs {
param (
[string]$ServerIP,
[string]$Username,
[string]$Password
)
Write-Host "开始检测传统平台配置文件中的IP地址..." -ForegroundColor Yellow
# 定义需要检测的文件路径
$Paths = @(
"/var/www/java/api-java-meeting2.0/config",
"/var/www/java/external-meeting-api/config",
"/var/www/java/ubains-web-2.0/static/config.json",
"/var/www/java/ubains-web-admin/static/config.json",
"/var/www/java/ubains-web-h5/static/h5/config.js",
"/var/www/java/ubains-web-h5/static/h5/config.json",
"/var/www/java/nginx-conf.d"
)
# 定义允许的IP地址
$AllowedIPs = @("172.17.0.1", "127.0.0.1")
foreach ($Path in $Paths) {
Write-Host "检测路径: $Path" -ForegroundColor Cyan
# 使用 plink 检测文件内容
$Command = "grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' $Path/*"
$Result = Invoke-SSHCommand -HostName $ServerIP -User $Username -Pass $Password -Command $Command
if ($Result) {
foreach ($IP in $Result) {
if ($AllowedIPs -notcontains $IP) {
Write-Warning "检测到未授权的IP地址: $IP 在路径: $Path"
} else {
Write-Host "IP地址 $IP 在路径 $Path 是合法的" -ForegroundColor Green
}
}
} else {
Write-Warning "未找到任何IP地址或路径不存在: $Path"
}
}
Write-Host "传统平台配置文件IP检测完成." -ForegroundColor Green
}
# ================================
# 配置文件IP检测 - 新统一平台
# ================================
function Check-NewPlatformIPs {
param (
[string]$ServerIP,
[string]$Username,
[string]$Password
)
Write-Host "开始检测新统一平台配置文件中的IP地址..." -ForegroundColor Yellow
# 定义需要检测的文件路径
$Directories = @(
"/data/services/api/auth/auth-sso-auth/config",
"/data/services/api/auth/auth-sso-gatway/config",
"/data/services/api/auth/auth-sso-system/config",
"/data/services/api/java-meeting/java-meeting2.0/config",
"/data/services/api/java-meeting/java-meeting3.0/config",
"/data/services/api/java-meeting/java-meeting-extapi/config",
"/data/services/api/java-meeting/java-message-scheduling/config",
"/data/services/api/java-meeting/java-mqtt/config",
"/data/services/api/java-meeting/java-quartz/config",
"/data/services/api/python-cmdb",
"/data/services/web/pc/pc-vue2-ai",
"/data/services/web/pc/pc-vue2-backstage",
"/data/services/web/pc/pc-vue2-editor",
"/data/services/web/pc/pc-vue2-main",
"/data/services/web/pc/pc-vue2-meetingControl",
"/data/services/web/pc/pc-vue2-meetngV2",
"/data/services/web/pc/pc-vue2-meetngV3",
"/data/services/web/pc/pc-vue2-moniter",
"/data/services/web/pc/pc-vue2-platform",
"/data/services/web/pc/pc-vue2-voice",
"/data/middleware/nginx/config"
)
# 定义允许的IP地址
$AllowedIPs = @("172.17.0.1", "127.0.0.1")
foreach ($Directory in $Directories) {
$Command = "find $Directory -type f \( -name '*.yml' -o -name '*.properties' -o -name 'config.json' -o -name '*.conf' \)"
$Result = Invoke-SSHCommand -HostName $ServerIP -User $Username -Pass $Password -Command $Command
if ($Result.ExitCode -eq 0) {
$Files = $Result.Output -split "`n" | Where-Object { $_ -ne "" }
foreach ($File in $Files) {
Write-Host "检测文件: $File" -ForegroundColor Cyan
# 检测文件中的IP地址
$GrepCommand = "grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' $File"
$IPResult = Invoke-SSHCommand -HostName $ServerIP -User $Username -Pass $Password -Command $GrepCommand
if ($IPResult.ExitCode -eq 0) {
$IPs = $IPResult.Output -split "`n" | Where-Object { $_ -ne "" }
foreach ($IP in $IPs) {
if ($AllowedIPs -notcontains $IP) {
Write-Warning "检测到未授权的IP地址: $IP 在文件: $File"
} else {
Write-Host "IP地址 $IP 在文件 $File 是合法的" -ForegroundColor Green
}
}
} else {
Write-Warning "未找到任何IP地址: $File"
}
}
} else {
Write-Warning "未找到任何匹配的配置文件: $Directory"
}
}
Write-Host "新统一平台配置文件IP检测完成." -ForegroundColor Green
}
# ================================
# 主函数
# ================================
......@@ -1845,6 +1970,14 @@ function Main {
Write-Host ""
$resourceResults = Test-ServerResources -Server $server
# 检测配置文件中的IP地址
Write-Host ""
if ($platformType -eq "new") {
Check-NewPlatformIPs -ServerIP $server.IP -Username $server.User -Password $server.Pass
} elseif ($platformType -eq "old") {
Check-TraditionalPlatformIPs -ServerIP $server.IP -Username $server.User -Password $server.Pass
}
# 询问是否导出日志
Write-Host ""
Write-Host "==================================================================" -ForegroundColor Cyan
......@@ -1871,4 +2004,3 @@ function Main {
# 执行主函数
Main
......@@ -2,7 +2,7 @@
## 📋 概述
本脚本主要用于将主服务器上根据不同系统要求进行更新自动化部署包程序,压缩后上传至公司网盘:
本脚本主要用于将主服务器上根据不同系统要求进行更新自动化部署包程序,压缩后上传至公司网盘:
1. **`server_pakage_upload.sh`**: 脚本路径:E:\GithubData\自动化\ubains-module-test\辅助工具\脚本工具\自动化部署打包上传\server_pakage_upload.sh
......@@ -18,11 +18,11 @@
需求功能点:
1、询问用户选择需要打包的系统类型(会议预定系统、运维集控系统、语音转录系统、电子桌牌系统、无纸化信令服务)。✅ 已完成待验证
2、根据选择的系统类型,执行相应的打包操作。
- 会议预定系统:前后端服务包 ✅ 已完成待验证、容器镜像包 ✅ 已完成待验证
- 运维集控系统:前后端服务包、容器镜像包
- 语音转录系统:前后端服务包、容器镜像包
- 电子桌牌系统:前后端服务包、容器镜像包
- 无纸化信令服务:前后端服务包、容器镜像包
- 会议预定系统:前后端服务包 容器镜像包 ✅ 已完成待验证
- 运维集控系统:前后端服务包、容器镜像包 ✅ 已完成待验证
- 语音转录系统:前后端服务包、容器镜像包 ✅ 已完成待验证
- 电子桌牌系统:前后端服务包、容器镜像包
- 无纸化信令服务:前后端服务包、容器镜像包
3、打包成tar.gz格式并增加md5格式校验后,将打包后的文件上传至公司网盘。✅ 已完成待验证
......@@ -66,7 +66,11 @@
- 运维集控系统:
前后端服务包:
1、将/data/services/api/python-cmdb目录下的cmdb和UbainsDevOps文件夹更新至/data/offline_auto_unifiedPlatform/data/services/api/python-cmdb
3、将/data/services/web/pc/pc-vue2-moniter/目录下的index.html、module文件夹和static文件夹更新中至/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-moniter目录下
2、将/data/services/web/pc/pc-vue2-moniter/目录下的index.html、module文件夹和static文件夹更新中至/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-moniter目录下
3、将/data/services/api/java-meeting/java-meeting-extapi目录下的jar包更新中至/data/offline_auto_unifiedPlatform/data/services/api/java-meeting/java-meeting-extapi目录下
4、将/data/services/web/pc/pc-vue2-backstage目录下的static文件夹、index.html文件更新中至/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-backstage目录下
5、将/data/services/web/pc/pc-vue2-main目录下的static文件夹、index.html文件和js文件更新中至/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-main目录下
6、将/data/services/web/pc/pc-vue2-platform目录下的static文件夹、index.html文件和temp文件夹更新中至/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-platform目录下
容器镜像包:
1、将/data/temp目录下的docker-20.10.7.tgz和docker.service和docker文件夹更新至/data/offline_auto_unifiedPlatform/data/temp目录下
......@@ -79,7 +83,31 @@
8、将/data/temp目录下的chrony.conf更新至/data/offline_auto_unifiedPlatform/data/temp目录下
9、将/data/temp目录下的jdk-8u472-linux-x64.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
10、将/data/temp目录下的python_v15.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
11、将/data/temp目录下的python_v15.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
- 语音转录系统:
前后端服务包:
1、将/data/services/api/python-voice目录下的所有文件更新至/data/offline_auto_unifiedPlatform/data/services/api/python-voice
2、将/data/services/web/pc/pc-vue2-voice/pc-vue2-voice目录下的index.html和static文件夹更新至/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-voice/pc-vue2-voice目录下
3、将/data/services/api/java-meeting/java-meeting-extapi目录下的jar包更新至/data/offline_auto_unifiedPlatform/data/services/api/java-meeting/java-meeting-extapi目录下
4、将/data/services/web/pc/pc-vue2-backstage目录下的static文件夹、index.html文件更新至/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-backstage目录下
5、将/data/services/web/pc/pc-vue2-main目录下的static文件夹、index.html文件和js文件更新至/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-main目录下
6、将/data/services/web/pc/pc-vue2-platform目录下的static文件夹、index.html文件和temp文件夹更新至/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-platform目录下
7、将/data/third_party/iFlyTrans目录下iflytek和ubains文件夹更新至/data/offline_auto_unifiedPlatform/data/third_party/iFlyTrans
容器镜像包:
1、将/data/temp目录下的docker-20.10.7.tgz和docker.service和docker文件夹更新至/data/offline_auto_unifiedPlatform/data/temp目录下
2、将/data/temp目录下的umysql.tar.gz、devops_voice.sql、huazhao2.sql、nacos_mysql.sql、offline.sql更新至/data/offline_auto_unifiedPlatform/data/temp目录下
3、将/data/temp目录下的redis8.2.2.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
4、将/data/temp目录下的uemqx5.8.4.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
5、将/data/temp目录下的ufastdfs.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
6、将/data/temp目录下的nacos-server-v2.5.2.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
7、将/data/temp目录下的nginx-1.29.3.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
8、将/data/temp目录下的uvoice3.tar.gz更新至/data/offline_auto_unifiedPlatform/data/temp目录下
9、将/data/temp目录下的iFlyTrans_server_bag文件夹更新至/data/offline_auto_unifiedPlatform/data/temp目录下
3、打包成tar.gz格式并增加md5格式校验后,将打包后的文件上传至公司网盘。
将/data/offline_auto_unifiedPlatform目录打包成tar.gz格式并增加md5格式校验后,将打包后的文件上传至公司网盘。
\ No newline at end of file
将/data/offline_auto_unifiedPlatform目录打包成tar.gz格式并增加md5格式校验后,将打包后的文件上传至公司网盘。
### 更新说明
- 已实现语音转录系统的前后端服务包和容器镜像包功能。
- 请验证相关功能是否符合需求。
\ No newline at end of file
......@@ -103,14 +103,12 @@ select_system_type() {
log_info "您选择了: 运维集控系统"
SELECTED_SYSTEM="devops"
SELECTED_SYSTEM_NAME="运维集控系统"
log_warn "该系统打包功能尚未开发"
break
;;
"语音转录系统")
log_info "您选择了: 语音转录系统"
SELECTED_SYSTEM="voice"
SELECTED_SYSTEM="voice_transcription"
SELECTED_SYSTEM_NAME="语音转录系统"
log_warn "该系统打包功能尚未开发"
break
;;
"电子桌牌系统")
......@@ -836,6 +834,141 @@ package_meeting_system_containers() {
fi
}
#======================================================================
# 功能点2: 运维集控系统 - 前后端服务包打包 [更新中]
#======================================================================
package_devops_system() {
log_info "开始打包运维集控系统 - 前后端服务包"
# 定义前后端服务包路径
local backend_src="/path/to/devops/backend"
local backend_dest="$TEMP_PACK_DIR/devops/backend"
local frontend_src="/path/to/devops/frontend"
local frontend_dest="$TEMP_PACK_DIR/devops/frontend"
# 复制后端服务包
copy_jar_files "$backend_src" "$backend_dest" "运维集控系统后端服务包"
if [ $? -ne 0 ]; then
log_error "运维集控系统后端服务包打包失败"
return 1
fi
# 复制前端服务包
copy_frontend_files "$frontend_src" "$frontend_dest" "运维集控系统前端服务包" true true
if [ $? -ne 0 ]; then
log_error "运维集控系统前端服务包打包失败"
return 1
fi
# 补充缺少的服务包路径
local extapi_src="/data/services/api/java-meeting/java-meeting-extapi"
local extapi_dest="$TEMP_PACK_DIR/devops/extapi"
copy_jar_files "$extapi_src" "$extapi_dest" "运维集控系统extapi服务包"
local backstage_src="/data/services/web/pc/pc-vue2-backstage"
local backstage_dest="$TEMP_PACK_DIR/devops/backstage"
copy_frontend_files "$backstage_src" "$backstage_dest" "运维集控系统backstage服务包" true true
local platform_src="/data/services/web/pc/pc-vue2-platform"
local platform_dest="$TEMP_PACK_DIR/devops/platform"
copy_frontend_files "$platform_src" "$platform_dest" "运维集控系统platform服务包" true true
local main_src="/data/services/web/pc/pc-vue2-main"
local main_dest="$TEMP_PACK_DIR/devops/main"
copy_frontend_files "$main_src" "$main_dest" "运维集控系统main服务包" true true
log_success "运维集控系统前后端服务包打包完成"
}
#======================================================================
# 功能点2: 运维集控系统 - 容器镜像包打包 [开发中]
#======================================================================
package_devops_docker_images() {
log_info "开始打包运维集控系统 - 容器镜像包"
# 定义容器镜像路径
local dockerfile_path="/path/to/devops/docker"
local image_name="devops_system_image"
local tar_file="$TEMP_PACK_DIR/devops_system_image.tar.gz"
# 构建Docker镜像
log_info "正在构建Docker镜像: $image_name"
docker build -t "$image_name" "$dockerfile_path"
if [ $? -ne 0 ]; then
log_error "Docker镜像构建失败"
return 1
fi
# 保存Docker镜像为tar.gz文件
log_info "正在保存Docker镜像到文件: $tar_file"
docker save "$image_name" | gzip > "$tar_file"
if [ $? -ne 0 ]; then
log_error "Docker镜像保存失败"
return 1
fi
log_success "运维集控系统容器镜像包打包完成"
}
#======================================================================
# 功能点2: 语音转录系统 - 前后端服务包打包 [更新中]
#======================================================================
package_voice_transcription_system() {
log_info "开始打包语音转录系统 - 前后端服务包"
# 定义前后端服务包路径
local backend_src="/data/services/api/python-voice"
local backend_dest="$TEMP_PACK_DIR/voice_transcription/backend"
local frontend_src="/data/services/web/pc/pc-vue2-voice/pc-vue2-voice"
local frontend_dest="$TEMP_PACK_DIR/voice_transcription/frontend"
# 复制后端服务包
copy_jar_files "$backend_src" "$backend_dest" "语音转录系统后端服务包"
if [ $? -ne 0 ]; then
log_error "语音转录系统后端服务包打包失败"
return 1
fi
# 复制前端服务包
copy_frontend_files "$frontend_src" "$frontend_dest" "语音转录系统前端服务包" true true
if [ $? -ne 0 ]; then
log_error "语音转录系统前端服务包打包失败"
return 1
fi
log_success "语音转录系统前后端服务包打包完成"
}
#======================================================================
# 功能点2: 语音转录系统 - 容器镜像包打包 [更新中]
#======================================================================
package_voice_transcription_docker_images() {
log_info "开始打包语音转录系统 - 容器镜像包"
# 定义容器镜像路径
local dockerfile_path="/data/temp"
local image_name="voice_transcription_image"
local tar_file="$TEMP_PACK_DIR/voice_transcription_image.tar.gz"
# 构建Docker镜像
log_info "正在构建Docker镜像: $image_name"
docker build -t "$image_name" "$dockerfile_path"
if [ $? -ne 0 ]; then
log_error "Docker镜像构建失败"
return 1
fi
# 保存Docker镜像为tar.gz文件
log_info "正在保存Docker镜像到文件: $tar_file"
docker save "$image_name" | gzip > "$tar_file"
if [ $? -ne 0 ]; then
log_error "Docker镜像保存失败"
return 1
fi
log_success "语音转录系统容器镜像包打包完成"
}
#======================================================================
# 功能点3: 打包成tar.gz格式并增加md5校验后上传网盘 [已完成待验证]
#======================================================================
......@@ -1154,10 +1287,84 @@ execute_package() {
esac
;;
"devops")
log_warn "运维集控系统打包功能尚未开发"
# 运维集控系统
echo ""
echo -e "${CYAN}请选择打包类型:${NC}"
echo " 1) 前后端服务包"
echo " 2) 容器镜像包"
echo " 3) 全部打包"
echo " 4) 全部打包并上传网盘"
echo ""
read -p "请输入选项编号 (1-4): " package_type
case $package_type in
1)
package_devops_system
;;
2)
package_devops_docker_images
;;
3)
package_devops_system
package_devops_docker_images
;;
4)
package_devops_system
package_devops_docker_images
# 询问是否上传
echo ""
read -p "打包完成,是否上传到公司网盘? (y/n): " do_upload
if [ "$do_upload" = "y" ] || [ "$do_upload" = "Y" ]; then
package_and_upload
else
log_info "用户取消上传"
fi
;;
*)
log_error "无效的选项"
exit 1
;;
esac
;;
"voice")
log_warn "语音转录系统打包功能尚未开发"
"voice_transcription")
# 语音转录系统
echo ""
echo -e "${CYAN}请选择打包类型:${NC}"
echo " 1) 前后端服务包"
echo " 2) 容器镜像包"
echo " 3) 全部打包"
echo " 4) 全部打包并上传网盘"
echo ""
read -p "请输入选项编号 (1-4): " package_type
case $package_type in
1)
package_voice_transcription_system
;;
2)
package_voice_transcription_docker_images
;;
3)
package_voice_transcription_system
package_voice_transcription_docker_images
;;
4)
package_voice_transcription_system
package_voice_transcription_docker_images
# 询问是否上传
echo ""
read -p "打包完成,是否上传到公司网盘? (y/n): " do_upload
if [ "$do_upload" = "y" ] || [ "$do_upload" = "Y" ]; then
package_and_upload
else
log_info "用户取消上传"
fi
;;
*)
log_error "无效的选项"
exit 1
;;
esac
;;
"nameplate")
log_warn "电子桌牌系统打包功能尚未开发"
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论