Files
IP-Sentinel/install/build_agent.sh

66 lines
2.5 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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 # 打印结束横幅与开源推广