Files
IP-Sentinel/install/build_agent.sh

63 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
# ==========================================================
# 模块名称: build_agent.sh (Orchestrator 编排大管家)
# 核心功能: 严格遵循原版 install.sh 判定树时序,实现无损热更新
# ==========================================================
# 传递中断引信
trap 'exit 1' INT QUIT TERM
MODULES=(
"env_setup.sh"
"ui_menu.sh"
"net_engine.sh"
"sys_daemon.sh"
)
# 1. 串行拉取子模块资产
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
# ==========================================================
# 2. 核心业务原子流 (100% 忠实于原版 install.sh 执行时序)
# ==========================================================
# [环境预检阶段]
do_env_precheck # 架构预检、系统级诊断 (原版第 26-55 行)
do_fetch_version # 动态解析远端版本约束 (原版第 59-66 行)
do_install_deps # 多分支包管理器嗅探与系统补全 (原版第 70-137 行)
# [菜单与策略拦截阶段]
do_fetch_map # LBS 地理图谱树预载 (原版第 141-146 行)
do_handle_menu # 区分全新安装、平滑升级与一键卸载 (原版第 149-188 行)
# [物理清洗阶段]
do_clean_env # 幽灵进程抹除、无损清空与数据保护 (原版第 192-225 行)
# [配置生成阶段 (仅限全新安装)]
do_interactive_setup # 逐级锁定战区城市、联控配置、端口探测 (原版第 229-373 行)
# [网络雷达与身份装配阶段]
do_network_probe # 冗余双栈探测、网卡锁、WARP假公网隔离 (原版第 375-430 行)
do_assemble_fallback # 智能多宿主容灾弹匣装填、主键别名分离 (原版第 432-475 行)
do_write_config # 固化本地本地 config.conf 档案 (原版第 477-512 行)
# [老节点热重载平滑升级阶段 (仅限升级模式)]
do_smooth_migrate # 强行覆写、重铸双栈容灾装甲 (原版第 516-590 行)
# [核心引擎原子覆写阶段]
do_deploy_core # 双缓冲防变砖下载域、物理覆写核心文件 (原版第 594-620 行)
# [进程守护与首播激活阶段]
do_inject_daemon # Systemd/Alpine 看门狗死循环双重注入 (原版第 622-728 行)
do_final_report # 首播暗号同步、Markdown防断开下划线发送 (原版第 732-793 行)
do_show_summary # 防火墙端口提示、装机量统计、开源 Star 推广 (原版第 795-832 行)
exit 0