mirror of
https://github.com/hotyue/IP-Sentinel.git
synced 2026-06-14 21:59:39 +08:00
66 lines
2.5 KiB
Bash
Executable File
66 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# ==========================================================
|
||
# 模块名称: build_agent.sh (v4.3.0 Orchestrator)
|
||
# 核心功能: Agent 安装业务的总指挥,负责拉取子模块并按序调用逻辑函数
|
||
# ==========================================================
|
||
|
||
# 1. 定义需要按需加载的子模块清单
|
||
MODULES=(
|
||
"env_setup.sh"
|
||
"ui_menu.sh"
|
||
"net_engine.sh"
|
||
"sys_daemon.sh"
|
||
)
|
||
|
||
echo "⏳ 正在装载底层设施依赖..."
|
||
|
||
# 2. 从云端拉取所有子模块到沙盒中
|
||
for mod in "${MODULES[@]}"; do
|
||
curl -fsSL --connect-timeout 10 --retry 3 "${REPO_RAW_URL}/install/${mod}" -o "${SECURE_TMP}/${mod}"
|
||
if [ ! -s "${SECURE_TMP}/${mod}" ]; then
|
||
echo -e "\033[31m❌ 致命错误:依赖模块 [${mod}] 装载失败!\033[0m"
|
||
exit 1
|
||
fi
|
||
source "${SECURE_TMP}/${mod}"
|
||
done
|
||
|
||
echo -e "\033[32m✅ 模块装载完毕,正在进入部署流程...\033[0m"
|
||
|
||
# ==========================================================
|
||
# 3. 核心业务编排流 (按原版 install.sh 的时序严格执行)
|
||
# (注:这些 do_* 函数将在对应的子模块中定义,原汁原味地保留原有逻辑)
|
||
# ==========================================================
|
||
|
||
# [模块: env_setup.sh]
|
||
do_env_precheck # 靶机架构预检与调度器降级决策
|
||
do_fetch_version # 解析运行态版本约束
|
||
do_install_deps # 多分支包管理器嗅探与极简系统补全
|
||
|
||
# [模块: ui_menu.sh]
|
||
do_fetch_map # 拉取全球节点地图
|
||
do_handle_menu # 拦截交互菜单 / 决定是否平滑升级 / 卸载
|
||
|
||
# 如果用户选择了卸载,子模块会直接 exit,不会执行后续流程
|
||
|
||
# [模块: sys_daemon.sh]
|
||
do_clean_env # 安装前的环境纯净度构建与幽灵进程抹除
|
||
|
||
# [模块: ui_menu.sh]
|
||
do_interactive_setup # 摘取节点信息并构建关联 / 接入 Master 司令部 (仅限全新安装)
|
||
|
||
# [模块: net_engine.sh]
|
||
do_network_probe # 冗余网络栈探测与多出口智能嗅探
|
||
do_assemble_fallback # 智能主副容灾弹药装填 (Multi-IP Fallback)
|
||
do_write_config # 远程拉取冷数据并解析固化配置 (仅限全新安装)
|
||
do_smooth_migrate # 老节点数据格式迁移兼容机制 (仅限平滑升级)
|
||
|
||
# [模块: sys_daemon.sh]
|
||
do_deploy_core # 防变砖双缓冲下载执行域 (覆写引擎)
|
||
do_inject_daemon # Systemd 原生注入与微内核定时降级兜底
|
||
|
||
# [模块: ui_menu.sh]
|
||
do_final_report # 部署后首播,打入中枢通信网关及指令态势传递
|
||
do_show_summary # 打印结束横幅与开源推广
|
||
|