Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录
切换导航
U
ubains-module-test
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
1
议题
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
郑晓兵
ubains-module-test
Commits
b3330b4c
提交
b3330b4c
authored
4月 14, 2026
作者:
陈泽健
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(add):调整deploy函数增加参数接收,处理后续分包时的菜单隐藏无关服务选择项;调整new_auto_monitor.sh脚本,增加中间件与主服务调用传参,去除无关服务部署操作;
上级
786bdf84
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
431 行增加
和
10 行删除
+431
-10
_PRD_deploy服务部署脚本优化_需求文档.md
Docs/PRD/自动化部署脚本/新统一平台/需求文档/_PRD_deploy服务部署脚本优化_需求文档.md
+53
-0
_PRD_deploy服务部署脚本优化_需求文档_计划执行.md
Docs/PRD/自动化部署脚本/新统一平台/需求文档/_PRD_deploy服务部署脚本优化_需求文档_计划执行.md
+174
-0
_PRD_独立运维系统部署主脚本_需求文档.md
Docs/PRD/自动化部署脚本/新统一平台/需求文档/_PRD_独立运维系统部署主脚本_需求文档.md
+35
-0
_PRD_独立运维系统部署主脚本_需求文档_计划执行.md
Docs/PRD/自动化部署脚本/新统一平台/需求文档/_PRD_独立运维系统部署主脚本_需求文档_计划执行.md
+97
-0
auto_deploy_services.sh
自动化部署脚本/x86架构/新统一平台/auto_deploy_services.sh
+62
-8
new_auto.sh
自动化部署脚本/x86架构/新统一平台/new_auto.sh
+5
-1
new_auto_monitor.sh
自动化部署脚本/x86架构/新统一平台/new_auto_monitor.sh
+5
-1
没有找到文件。
Docs/PRD/自动化部署脚本/新统一平台/需求文档/_PRD_deploy服务部署脚本优化_需求文档.md
0 → 100644
浏览文件 @
b3330b4c
# deploy服务部署脚本优化
## 代码路径
-
deploy服务部署脚本:
[
自动化部署脚本/x86架构/新统一平台/auto_deploy_services.sh
]
-
主脚本:
[
自动化部署脚本/x86架构/新统一平台/new_auto.sh
]
## 功能需求
### 功能目标
**目标:**
当前脚本无接收传参方式,需增加接收传参方式来过滤交互菜单中的某些选项。
### 需求描述
#### 调用逻辑
-
调用方式:
-
在主脚本中调整
`deploy_services`
调用传参
```bash
# 传入所需部署的服务:meeting,monitor,voice,cardtable,paperless
# 默认全部(不传参或空)
deploy_services ""
# 指定服务
deploy_services "meeting,monitor,voice"
deploy_services "$deploy_services_type"
```
例子:
```ignorelang
# 场景1:不传参,显示所有服务选项
deploy_services ""
# 场景2:只部署预定系统和运维系统
deploy_services "meeting,monitor"
# 场景3:部署语音系统(包含两个服务python_voice_x86和iListen_x86)
deploy_services "voice"
```
-
如果没用传参,则默认全部。
-
传参说明:
-
meeting:java_x86
-
monitor:python_x86
-
voice:python_voice_x86、iListen_x86
-
cardtable:cardtable_x86
-
paperless:paperless_x86
-
建立映射关系吧。
-
交互菜单:
-
通过接收到的参数显示服务,需用户自行勾选部署。
## 规范文档
-
代码规范:
`Docs/PRD/01规范文档/_PRD_规范文档_代码规范.md`
-
问题总结:
`Docs/PRD/01规范文档/_PRD_问题总结_记录文档.md`
-
方法总结:
`Docs/PRD/01规范文档/_PRD_方法总结_记录文档.md`
-
文档规范:
`Docs/PRD/01规范文档/_PRD_规范文档_文档规范.md`
-
测试规范:
`Docs/PRD/01规范文档/_PRD_规范文档_测试规范.md`
---
\ No newline at end of file
Docs/PRD/自动化部署脚本/新统一平台/需求文档/_PRD_deploy服务部署脚本优化_需求文档_计划执行.md
0 → 100644
浏览文件 @
b3330b4c
# deploy服务部署脚本优化 - 计划执行文档
## 需求概述
为
`deploy_services`
函数增加接收传参方式,通过参数过滤交互菜单中的服务选项。
---
## 代码路径
-
**目标脚本**
:
`自动化部署脚本/x86架构/新统一平台/auto_deploy_services.sh`
-
**调用脚本**
:
`自动化部署脚本/x86架构/新统一平台/new_auto.sh`
---
## 服务名称映射关系
| 服务名称 | 对应函数 | 菜单编号 |
|---------|---------|---------|
| meeting | java_x86 | 1 |
| monitor | python_x86 | 2 |
| voice | python_voice_x86, iListen_x86 | 3 |
| cardtable | cardtable_x86 | 4 |
| paperless | paperless_x86 | 5 |
---
## 实现步骤
### 步骤1:修改 deploy_services 函数签名
**文件**
:
`auto_deploy_services.sh`
**修改内容**
:
```
bash
# 修改前
function
deploy_services
()
{
# 修改后
function
deploy_services
()
{
local
filter_services
=
"
$1
"
# 接收过滤参数
```
### 步骤2:建立服务名称到菜单编号的映射
**位置**
:函数内部,SERVICE_MAP 定义之后
**新增内容**
:
```
bash
# 服务名称到菜单编号的映射
declare
-A
SERVICE_NAME_MAP
=(
[
meeting]
=
"1"
[
monitor]
=
"2"
[
voice]
=
"3"
[
cardtable]
=
"4"
[
paperless]
=
"5"
)
```
### 步骤3:解析过滤参数,确定允许的菜单编号
**位置**
:函数内部,SERVICE_NAME_MAP 定义之后
**新增内容**
:
```
bash
# 解析过滤参数
local
allowed_numbers
=()
if
[
-n
"
$filter_services
"
]
;
then
# 将逗号分隔的服务名称转换为对应的菜单编号
IFS
=
','
read
-ra
SERVICE_ARRAY
<<<
"
$filter_services
"
for
service
in
"
${
SERVICE_ARRAY
[@]
}
"
;
do
# 去除空格
service
=
$(
echo
"
$service
"
| xargs
)
if
[[
-n
"
${
SERVICE_NAME_MAP
[
$service
]
}
"
]]
;
then
allowed_numbers+
=(
"
${
SERVICE_NAME_MAP
[
$service
]
}
"
)
else
log
"WARN"
"未知服务名称:
$service
,已忽略"
fi
done
# 如果没有有效的服务名称,则显示全部
if
[
${#
allowed_numbers
[@]
}
-eq
0
]
;
then
log
"INFO"
"未检测到有效的服务名称,显示全部服务选项"
allowed_numbers
=({
1..5
})
fi
else
# 未传参或空参数,显示全部服务
allowed_numbers
=({
1..5
})
fi
```
### 步骤4:根据过滤结果构建菜单选项
**位置**
:替换原有的菜单构建代码
**修改内容**
:
```
bash
# 根据允许的编号构建菜单选项
local
options
=()
for
num
in
"
${
allowed_numbers
[@]
}
"
;
do
if
[[
-n
"
${
SERVICE_LABEL
[
$num
]
}
"
]]
;
then
options+
=(
"
$num
"
"
${
SERVICE_LABEL
[
$num
]
}
(
${
SERVICE_DESC
[
$num
]
}
)"
"off"
)
fi
done
# 检查是否有可选项
if
[
${#
options
[@]
}
-eq
0
]
;
then
log
"ERROR"
"没有可用的服务选项"
return
1
fi
```
### 步骤5:更新主脚本调用方式(可选)
**文件**
:
`new_auto.sh`
**调用示例**
:
```
bash
# 默认显示全部服务
deploy_services
""
# 指定服务
# deploy_services "meeting,monitor"
# deploy_services "$deploy_services_type"
```
---
## 测试场景
### 场景1:不传参(默认全部)
```
bash
deploy_services
""
```
**预期结果**
:显示全部5个服务选项
### 场景2:指定单个服务
```
bash
deploy_services
"meeting"
```
**预期结果**
:只显示"预定系统"选项
### 场景3:指定多个服务
```
bash
deploy_services
"meeting,monitor,voice"
```
**预期结果**
:只显示"预定系统"、"运维集控系统"、"语音转录系统"选项
### 场景4:包含无效服务名
```
bash
deploy_services
"meeting,invalid,monitor"
```
**预期结果**
:警告无效服务名,只显示"预定系统"和"运维集控系统"选项
### 场景5:全部无效服务名
```
bash
deploy_services
"invalid1,invalid2"
```
**预期结果**
:警告并显示全部服务选项
---
## 实施状态
-
[
x
]
步骤1:修改函数签名,添加参数接收
-
[
x
]
步骤2:建立服务名称映射
-
[
x
]
步骤3:实现参数解析逻辑
-
[
x
]
步骤4:修改菜单构建逻辑
-
[
x
]
步骤5:更新主脚本调用(可选)
-
[
]
测试验证各场景
---
## 备注
-
保持原有交互流程不变
-
参数分隔符使用英文逗号
-
未知服务名称输出警告但继续执行
Docs/PRD/自动化部署脚本/新统一平台/需求文档/_PRD_独立运维系统部署主脚本_需求文档.md
0 → 100644
浏览文件 @
b3330b4c
# 单运维系统部署主脚本需求文档
## 代码路径
-
主脚本:
[
自动化部署脚本/x86架构/新统一平台/new_auto_monitor.sh
]
## 功能需求
### 功能目标
**目标:**
当前主脚本只部署运维系统所需相关服务,需去除无关的容器部署。
### 需求描述
#### 调用逻辑
-
调用方式:
-
在主脚本中调整
`middleware_type`
调用传参
```bash
# 运维系统部署中间件只需部署mysql、redis、emqx、fdfs、ngrok、nginx
middleware_type="mysql redis emqx fdfs ngrok nginx" install_middleware
```
-
在主脚本调整
`deploy_services`
调用传参
```ignorelang
# 默认全部(不传参或空)
deploy_services ""
# 指定服务
deploy_services "monitor,cardtable,paperless"
deploy_services "$deploy_services_type"
```
## 规范文档
-
代码规范:
`Docs/PRD/01规范文档/_PRD_规范文档_代码规范.md`
-
问题总结:
`Docs/PRD/01规范文档/_PRD_问题总结_记录文档.md`
-
方法总结:
`Docs/PRD/01规范文档/_PRD_方法总结_记录文档.md`
-
文档规范:
`Docs/PRD/01规范文档/_PRD_规范文档_文档规范.md`
-
测试规范:
`Docs/PRD/01规范文档/_PRD_规范文档_测试规范.md`
---
\ No newline at end of file
Docs/PRD/自动化部署脚本/新统一平台/需求文档/_PRD_独立运维系统部署主脚本_需求文档_计划执行.md
0 → 100644
浏览文件 @
b3330b4c
# 独立运维系统部署主脚本 - 计划执行文档
## 需求概述
调整
`new_auto_monitor.sh`
脚本中的传参,使其专门用于部署运维系统。
---
## 代码路径
-
**目标脚本**
:
`自动化部署脚本/x86架构/新统一平台/new_auto_monitor.sh`
---
## 实现步骤
### 步骤1:确认中间件传参
**位置**
:脚本中间件部署调用部分
**当前状态**
:
```
bash
# 部署中间件服务(mysql, redis, emqx, fdfs, ngrok, nginx)
middleware_type
=
"mysql redis emqx fdfs ngrok nginx"
install_middleware
```
**状态**
:✅ 已符合需求(去除 nacos)
### 步骤2:调整 deploy_services 传参
**位置**
:脚本服务部署调用部分
**修改前**
:
```
bash
deploy_services
```
**修改后**
:
```
bash
# 指定运维系统服务
deploy_services
"monitor,cardtable,paperless"
```
**服务说明**
:
-
`monitor`
→ 运维集控系统 (python_x86)
-
`cardtable`
→ 电子桌牌服务 (cardtable_x86)
-
`paperless`
→ 无纸化信令服务 (paperless_x86)
---
## 运维系统服务列表
| 服务名称 | 菜单编号 | 对应函数 | 描述 |
|---------|---------|---------|------|
| monitor | 2 | python_x86 | 运维集控系统 |
| cardtable | 5 | cardtable_x86 | 电子桌牌服务 |
| paperless | 4 | paperless_x86 | 无纸化信令服务 |
---
## 运维系统中间件列表
| 中间件 | 用途 |
|-------|------|
| mysql | 数据库 |
| redis | 缓存 |
| emqx | MQTT 消息队列 |
| fdfs | 分布式文件存储 |
| ngrok | 内网穿透 |
| nginx | 反向代理 |
**说明**
:去除了
`nacos`
(服务注册中心,预定系统需要)
---
## 调用示例
```
bash
# 方式1:直接指定服务
deploy_services
"monitor,cardtable,paperless"
# 方式2:通过变量传递
deploy_services_type
=
"monitor,cardtable,paperless"
deploy_services
"
$deploy_services_type
"
# 方式3:只部署运维集控系统
deploy_services
"monitor"
```
---
## 实施状态
-
[
x
]
步骤1:确认中间件传参(已符合需求)
-
[
x
]
步骤2:调整 deploy_services 传参
---
## 备注
-
其他函数(malan、deploy_jdk_host、start_java_meeting_service、ntp_uos、add_crontab_job)保持不变
-
交互菜单会根据传参只显示指定的服务选项
自动化部署脚本/x86架构/新统一平台/auto_deploy_services.sh
浏览文件 @
b3330b4c
...
...
@@ -795,6 +795,7 @@ function cardtable_x86() {
#-------------------------------服务部署选择-start--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
function
deploy_services
()
{
local
filter_services
=
"
$1
"
# 接收过滤参数(服务名称列表,逗号分隔)
local
IP
=
$(
hostname
-I
|
awk
'{print $1}'
|
cut
-d
' '
-f1
)
# ========================================
...
...
@@ -825,6 +826,17 @@ function deploy_services() {
[
5]
=
"电子桌牌通信服务"
)
# ========================================
# 📋 服务名称到菜单编号的映射
# ========================================
declare
-A
SERVICE_NAME_MAP
=(
[
meeting]
=
"1"
[
monitor]
=
"2"
[
voice]
=
"3"
[
paperless]
=
"4"
[
cardtable]
=
"5"
)
log
"INFO"
"🔍 正在检查 SERVICE_MAP 中引用的所有函数..."
local
all_funcs
=()
...
...
@@ -850,22 +862,64 @@ function deploy_services() {
return
1
fi
# 构建 whiptail 选项
# ========================================
# 🎯 解析过滤参数,确定允许的菜单编号
# ========================================
local
allowed_numbers
=()
if
[
-n
"
$filter_services
"
]
;
then
log
"INFO"
"📋 收到服务过滤参数:
$filter_services
"
# 将逗号分隔的服务名称转换为对应的菜单编号
IFS
=
','
read
-ra
SERVICE_ARRAY
<<<
"
$filter_services
"
for
service
in
"
${
SERVICE_ARRAY
[@]
}
"
;
do
# 去除空格
service
=
$(
echo
"
$service
"
| xargs
)
if
[[
-n
"
${
SERVICE_NAME_MAP
[
$service
]
}
"
]]
;
then
allowed_numbers+
=(
"
${
SERVICE_NAME_MAP
[
$service
]
}
"
)
log
"INFO"
"✅ 添加服务:
$service
→ 编号
${
SERVICE_NAME_MAP
[
$service
]
}
"
else
log
"WARN"
"⚠️ 未知服务名称:
$service
,已忽略"
fi
done
# 如果没有有效的服务名称,则显示全部
if
[
${#
allowed_numbers
[@]
}
-eq
0
]
;
then
log
"INFO"
"📋 未检测到有效的服务名称,显示全部服务选项"
allowed_numbers
=(
1 2 3 4 5
)
fi
else
# 未传参或空参数,显示全部服务
log
"INFO"
"📋 未传过滤参数,显示全部服务选项"
allowed_numbers
=(
1 2 3 4 5
)
fi
# ========================================
# 📝 根据允许的编号构建菜单选项
# ========================================
local
options
=()
for
i
in
{
1..5
}
;
do
options+
=(
"
$i
"
"
${
SERVICE_LABEL
[
$i
]
}
(
${
SERVICE_DESC
[
$i
]
}
)"
"off"
)
for
num
in
"
${
allowed_numbers
[@]
}
"
;
do
if
[[
-n
"
${
SERVICE_LABEL
[
$num
]
}
"
]]
;
then
options+
=(
"
$num
"
"
${
SERVICE_LABEL
[
$num
]
}
(
${
SERVICE_DESC
[
$num
]
}
)"
"off"
)
fi
done
# 检查是否有可选项
if
[
${#
options
[@]
}
-eq
0
]
;
then
log
"ERROR"
"❌ 没有可用的服务选项"
return
1
fi
# 显示多选菜单(第一级界面)
# 根据选项数量动态调整高度
local
menu_height
=
$((
12
+
${#
options
[@]
}
*
2
))
local
choices
choices
=
$(
whiptail
--title
"🔹 服务部署中心"
\
--backtitle
"当前服务器 IP:
$IP
"
\
--checklist
"
\n
请选择要部署的服务(使用空格勾选,支持多选):"
\
18
80 6
\
"
$menu_height
"
80 6
\
"
${
options
[@]
}
"
\
3>&1 1>&2 2>&3
)
...
...
自动化部署脚本/x86架构/新统一平台/new_auto.sh
浏览文件 @
b3330b4c
...
...
@@ -1204,7 +1204,11 @@ function getLatestVersion() {
middleware_type
=
"mysql redis emqx fdfs ngrok nacos nginx"
install_middleware
ntp_uos
malan
deploy_services
# deploy_services 调用方式:
# 1. 默认显示全部服务:deploy_services ""
# 2. 指定服务:deploy_services "meeting,monitor,voice"
# 3. 通过变量:deploy_services "$deploy_services_type"
deploy_services
""
log
"INFO"
"正在重启docker服务,请耐心等待。"
$sudoset
systemctl restart docker
sleep
120
...
...
自动化部署脚本/x86架构/新统一平台/new_auto_monitor.sh
浏览文件 @
b3330b4c
...
...
@@ -1206,7 +1206,11 @@ function getLatestVersion() {
deploy_jdk_host
start_java_meeting_service
malan
deploy_services
# deploy_services 调用方式:
# 默认全部(不传参或空)
# deploy_services ""
# 指定运维系统服务
deploy_services
"monitor,cardtable,paperless"
add_crontab_job
#检查中间件版本
getLatestVersion
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论