Support up to 3 strategy slots on one host with auto ports.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+51
-6
@@ -182,13 +182,15 @@ show_banner() {
|
||||
}
|
||||
|
||||
show_menu() {
|
||||
echo " 1) 一键部署策略机"
|
||||
echo " 1) 一键部署策略机(可选槽位 1/2/3)"
|
||||
echo " 2) 一键部署中控机"
|
||||
echo " 3) 一键卸载"
|
||||
echo " 4) 更新策略机"
|
||||
echo " 3) 一键卸载策略机(选槽位)"
|
||||
echo " 4) 更新策略机(选槽位 / 全部)"
|
||||
echo " 5) 更新中控机"
|
||||
echo " 0) 退出"
|
||||
echo ""
|
||||
echo " 槽位: 1→:5155 2→:5156 3→:5157(同机最多三套,实盘请只用 1)"
|
||||
echo ""
|
||||
}
|
||||
|
||||
# 交互读入(兼容 curl|bash)
|
||||
@@ -224,6 +226,42 @@ deploy_control_node() {
|
||||
log "中控部署完成 → http://<本机IP>:5160 默认账号 admin / admin123"
|
||||
}
|
||||
|
||||
run_with_slot_env() {
|
||||
# 子脚本继承当前槽位变量
|
||||
env \
|
||||
INSTANCE_SLOT="${INSTANCE_SLOT}" \
|
||||
INSTALL_ROOT="${INSTALL_ROOT}" \
|
||||
API_PORT="${API_PORT}" \
|
||||
PM2_APP_NAME="${PM2_APP_NAME}" \
|
||||
SKIP_SLOT_PROMPT=1 \
|
||||
EHS_FROM_MANAGE=1 \
|
||||
"$@"
|
||||
}
|
||||
|
||||
prompt_update_target() {
|
||||
local line=""
|
||||
echo ""
|
||||
echo "更新目标:"
|
||||
echo " 1/2/3) 指定槽位"
|
||||
echo " a) 全部已安装槽位(串行,适合 2G 测机)"
|
||||
cm_read line "请选择 [1/2/3/a,默认1]: "
|
||||
line="${line:-1}"
|
||||
case "${line}" in
|
||||
a|A|all|ALL)
|
||||
EHS_UPDATE_MODE=all
|
||||
;;
|
||||
1|2|3)
|
||||
EHS_UPDATE_MODE=one
|
||||
resolve_slot "${line}"
|
||||
;;
|
||||
*)
|
||||
echo "无效选择,使用槽位 1"
|
||||
EHS_UPDATE_MODE=one
|
||||
resolve_slot 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
main_menu() {
|
||||
bootstrap_repo
|
||||
# shellcheck source=lib/common.sh
|
||||
@@ -237,16 +275,23 @@ main_menu() {
|
||||
cm_read choice "请选择 [0-5]: "
|
||||
case "${choice}" in
|
||||
1)
|
||||
bash "${LIB_DIR}/install.sh"
|
||||
prompt_instance_slot
|
||||
run_with_slot_env bash "${LIB_DIR}/install.sh"
|
||||
;;
|
||||
2)
|
||||
deploy_control_node
|
||||
;;
|
||||
3)
|
||||
bash "${LIB_DIR}/uninstall.sh"
|
||||
prompt_instance_slot
|
||||
run_with_slot_env bash "${LIB_DIR}/uninstall.sh"
|
||||
;;
|
||||
4)
|
||||
bash "${LIB_DIR}/update.sh"
|
||||
prompt_update_target
|
||||
if [[ "${EHS_UPDATE_MODE}" == "all" ]]; then
|
||||
env EHS_UPDATE_MODE=all SKIP_SLOT_PROMPT=1 bash "${LIB_DIR}/update.sh"
|
||||
else
|
||||
run_with_slot_env bash "${LIB_DIR}/update.sh"
|
||||
fi
|
||||
;;
|
||||
5)
|
||||
deploy_control_node
|
||||
|
||||
Reference in New Issue
Block a user