跳到主要内容

第 5 章 · 安装管理平台(含离线安装)

适用对象:交付工程师 · 阅读约 14 分钟 · 对应产品界面版本 v1.2.0

管理平台是整套系统的控制面。装它的时候最容易犯的错是把"容器起来了"当成"安装成功了"——实际上要到许可证加载、存储库可用、测试主机跑完一次备份并产生还原点,这次安装才算完成。本章按"准备材料 → 前置环境 → 执行安装 → 初始化 → 自检"的顺序展开,并单独给出离线场景和卸载重装的处置口径。

读完这一章会做:

  • 区分管理端部署、基础设施接入、Agent 分发这三件不同的事,分别安排材料与验收
  • 按六项清单准备安装材料并完成校验
  • 完成时间同步、数据盘、容器运行时、中间件、端口五项前置检查
  • 在离线环境里导入镜像、补齐依赖并完成"全程无外网依赖"的验收
  • 在重装前把数据、配置与授权按规则保留下来,失败时能回退
本章没有 SupDRC 的官方安装命令

源文档给出的安装命令、脚本名、参数名全部是通用骨架或第三方产品的写法,不是 SupDRC 的正式取值,文中也明确写了"不可直接在生产执行"。本章照录这些骨架是为了让你知道要准备什么、记录什么,执行前必须用产品方提供的正式安装手册替换掉每一个占位值。凡属占位的地方本章都留了 TODO。

源文档里的「本系统」不是 SupDRC

源文档是把多家第三方产品的资料做品牌替换后拼进来的,「本系统」是替换残留,同一份文档里的多个「本系统」甚至指向不同产品。本章凡是引用了以「本系统……」叙述的交付形态、安装顺序、默认值、服务名,都会明确标注指代不明,未确认是否为 SupDRC,不写成 SupDRC 的产品行为。另外,源文档的命令示例里有一批占位符被清理工具吃空了(例如 grep -rn "" /var/log//),本章统一改写成 <占位名> 形式,不猜具体取值。

5.1 先分清三件事​

管理端部署、基础设施接入和 Agent 分发是三件不同的操作,应分别安排安装材料和验收。

这件事做什么在哪一章
管理端部署装管理平台本体,让控制台能打开本章
基础设施接入把数据获取器、存储库、挂载服务器登记进平台第 8 章
Agent 分发把备份代理装到被保护主机上第 7 章

本章只负责第一件。第二、三件的前置条件是本章装完且第 6 章的许可证已经生效。

部署形态​

核查环境的观测是:管理端通过 Docker 运行 supdrc:1.0 与 supmirror-backupserver:2.0 等镜像,页面显示 SupDRC v1.2.0,控制台为 B/S 架构。这是本节证据等级最高的一条。

源文档另外描述了两点,但都以「本系统」叙述,指代不明,未确认是否为 SupDRC,只能当作交付前要向产品方核实的问题清单:

  • 部署形态分为单机部署与「主节点 + 子节点」多节点部署,多节点形态下子节点没有独立管理页面,由主节点统一纳管。
  • 交付形态为"软件与操作系统集成在同一个 ISO 镜像中,不需要先装操作系统再装备份软件",另单独提供 LiveCD 引导镜像(约 300 MB)与依赖包集合。
镜像标签不是版本基线

supdrc:1.0、supmirror-backupserver:2.0 是核查环境的实例记录,不能当作推荐安装版本,也不能替代版本基线。产品版本、镜像 tag、许可证版本是三个不同的对象,区分方式见第 6 章。

5.2 准备安装材料​

材料准备要形成可核对的清单:介质来源、版本基线、校验值、依赖包、许可材料、回退材料六项齐备后方可开始安装。登记人与核对人分别签认,未通过项不得进入安装阶段。

序号材料通用要求
1管理平台安装介质与批准基线一致,登记文件名、大小、获取时间
2校验清单与校验值SHA-256 与产品发布值一致
3依赖与中间件包覆盖目标操作系统与架构,可离线安装
4Agent 安装包与目标主机操作系统、架构匹配
5许可证材料许可证数据文件与私钥文件齐备,来源为正式渠道
6回退材料上一版本安装包、配置备份、卸载方法

安装包清单至少覆盖七类(类别划分通用,具体文件名以产品交付清单为准):

序号文件类别用途校验要求
1容器运行时 / 编排组件承载管理平台容器版本与基线一致
2管理平台镜像包管理服务镜像 digest + 介质哈希
3数据服务镜像包数据 / 元数据服务镜像 digest + 介质哈希
4Agent 安装包被保护主机接入哈希 + 数字签名
5依赖包集合离线补齐依赖哈希
6许可证材料激活授权哈希;私钥不得写入文档或截图
7校验清单完整性校验逐项比对

介质获取一般有两条路径:官方支持门户下载,以及 Jumborca 技术支持直接交付。正式交付以合同约定的渠道与介质为准。

无论来源如何,安装前都要完成"来源登记 → 哈希校验 → 签名校验(如提供)→ 解压自检"四步:

# 1) 登记来源与文件信息
ls -lh <安装包> <校验清单>
sha256sum <安装包> | tee actual.sha256

# 2) 与发布值逐项比对(用 diff,避免人工肉眼比对出错)
diff <(awk '{print $1}' actual.sha256) <(awk '{print $1}' <校验清单>) && echo "SHA256 OK"

# 3) 如提供 GPG 签名
gpg --verify <安装包>.asc <安装包>

# 4) 如提供 RPM 包,校验包签名与摘要
rpm -K <安装包>.rpm

# 5) 解压自检(不落盘,只看目录结构)
tar -tzf <安装包> | head -30
检查项参考方法判定标准
文件名与大小ls -l 与交付清单比对与交付清单完全一致
完整性sha256sum 比对哈希完全一致
真实性gpg --verify / rpm -K签名者身份可信、证书在有效期内
可解压性tar -tzf 或 unzip -t无报错,目录结构与清单一致
版本基线包内 VERSION/RELEASE 文件与批准基线一致

版本基线登记​

安装前把基线登记清楚,后续升级、故障申报都要用:

基线项记录字段核查环境记录
产品版本产品名 + 版本号v1.2.0(页面「关于」显示)
详细版本 / 构建号构建号或详细版本未取得
管理平台镜像镜像名 + tag + digestsupdrc:1.0(实例记录,非基线)
数据服务镜像镜像名 + tag + digestsupmirror-backupserver:2.0(实例记录,非基线)
许可证版本许可证版本字段2.0(与产品版本不是同一对象)
Agent 版本Agent 包版本未取得
校验值SHA-256 / 镜像 digest逐项登记

5.3 前置环境​

前置步骤固定为:时间同步 → 数据盘与目录 → 容器运行时 → 中间件 → 端口与防火墙自检。

  1. 配置时间同步(chrony / NTP),保证管理节点、数据服务与 Agent 时间一致。
  2. 准备数据盘并规划数据目录,必要时设置独立挂载点。
  3. 安装容器运行时并设置开机自启。
  4. 安装数据库、反向代理等中间件(与平台分离部署时)。
  5. 按第 4 章放开端口,检查 SELinux 与防火墙策略。
# 时间同步
timedatectl set-timezone Asia/Shanghai
systemctl enable --now chronyd
chronyc sources -v

# 容器运行时(发行版仓库示例,版本须按基线固定)
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo <容器运行时仓库地址>
sudo dnf install -y <容器运行时包名>=<版本>
sudo systemctl enable --now docker
docker version && docker info

# 数据目录与权限(目录名与属主属组为占位值)
sudo mkdir -p /data/supdrc/{conf,db,log,data,cache}
df -hT /data

# 端口与防火墙自检
sudo ss -lntp
sudo firewall-cmd --list-ports
前置项检查命令通过标准
时间同步chronyc tracking偏差在可接受范围内
数据盘挂载findmnt /data、df -hT挂载点正确、剩余空间满足规划
容器运行时docker version客户端与服务端均可用
中间件systemctl status <服务名>服务为 active (running)
端口ss -lntp与规划矩阵一致,无冲突
SELinux / 防火墙getenforce、firewall-cmd --list-ports策略已按规划放通
在线安装当天不要取到未经验证的新版本

在线场景可直接用发行版仓库安装容器运行时与中间件,但要先固定仓库源与版本号,否则当天可能装上一个没进过基线的新版本。

5.4 执行安装​

安装阶段固定为五步:前置检查 → 导入介质或镜像 → 执行安装 → 初始化配置 → 首次登录验收。每一步都要保留可回看的输出(命令、返回码、日志片段)。

源文档给出两条路径:镜像方式,以及交互式安装脚本方式(脚本运行时选择安装 server 还是 node,安装完成后重启系统并按提示选择指定内核条目)。

# 方式 A:镜像方式
docker load -i <管理平台镜像包>
docker load -i <数据服务镜像包>
docker images --digests

# 方式 B:安装脚本方式
tar -zxvf <安装包>
cd <解压目录> && ls -l *.sh
sudo ./<安装脚本> # 交互式选择组件
echo $? # 记录返回码

# 若为编排交付
docker compose -f docker-compose.yml up -d
docker compose ps

参数名同样是骨架,不是 SupDRC 的正式参数:

参数(骨架命名)用途示例取值
--data-dir数据 / 元数据目录/data/supdrc
--conf-dir配置目录/data/supdrc/conf
--log-dir日志目录/data/supdrc/log
--port管理页面端口443
--db-host / --db-port元数据服务地址与端口127.0.0.1:<端口>
--timezone时区Asia/Shanghai
--offline离线模式开关true / false

数据目录规划​

元数据、日志、备份数据分开存放,并按增长速率预留空间:

目录(骨架)内容容量口径权限建议备注
<数据根>/conf平台配置、证书数 GB,随配置项增长仅服务账号可读写纳入配置备份范围
<数据根>/db元数据 / 数据库文件按任务数与还原点数量估算服务账号与备份数据分离
<数据根>/log运行与审计日志按日志轮转策略封顶服务账号写、审计只读单文件与总量双阈值
<数据根>/data备份数据落盘按受保护容量乘以增长系数服务账号由存储库章节维护
<数据根>/cache缓存 / 临时目录按并发作业量估算服务账号清理或迁移前核对依赖

监控阈值的统一口径用"剩余空间比例":剩余 20% 以上为健康、10%–20% 为紧张、10% 以下为风险并考虑扩容。

初始化顺序:创建目录并设置属主属组 → 挂载数据盘并写入 /etc/fstab 后核对挂载点与容量 → 生成或导入平台证书并收紧私钥权限 → 按交付清单写入初始化配置(时区、端口、数据库连接、存储路径)→ 启动后用健康检查与日志确认初始化成功。

5.5 首次启动与管理账户初始化​

首次启动后的固定动作是:浏览器以 HTTPS 访问管理地址 → 使用初始管理员账号登录 → 设置时间、网络与存储 → 下载指纹文件申请授权 → 上传授权文件激活。

  1. 确认管理服务与数据服务容器或进程处于运行状态,并检查端口监听。
  2. 浏览器访问 https://<管理地址>,生产环境应导入受信任证书而不是长期忽略证书告警。
  3. 使用交付的初始管理员账号登录,登录后立即修改口令。
  4. 按第 18 章建立管理员、审计员等必要账号并分配角色,不建议多人共用同一管理员账号。
  5. 核对系统时间与时区,必要时启用 NTP。
  6. 配置网络与域名解析,确认存储可用空间。
  7. 导入许可证材料并复核授权类别、版本与有效期,见第 6 章。
  8. 执行 5.6 的安装后自检清单。
# 首次启动后的服务与端口自检
docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'
curl -kI https://127.0.0.1/
timedatectl status
出厂口令不得带进生产

默认管理账号的出厂口令属产品出厂值,不应直接沿用到生产环境。首次登录后立即改密,并确认改密后能用新口令重新登录。

5.6 安装后自检清单​

下面十项是本章的验收口径。第 2、4、6 项是本类产品最常见的失败点(版本基线不符、许可功能缺失、存储容量不足),必须在进入试运行前完成。

序号检查项检查位置判定标准
1管理平台页面可访问,且证书可正常加载浏览器访问 https://<管理地址>登录页正常显示,无证书阻断性告警
2页面显示的版本号与本次批准的版本基线一致「关于 / 系统信息」页面产品版本 = 批准版本;否则停止后续步骤
3管理节点系统时间、时区与 NTP 同步状态正确系统配置 → 时间配置与标准时间偏差 ≤ 1 秒,时区全环境一致
4许可证已加载且授权类别、功能模块、有效期与合同一致配置中心 → 许可管理授权项无缺失,有效期覆盖交付期
5管理服务、数据获取器、数据库与消息组件全部运行正常组件状态 / 容器或进程列表全部为运行中,无反复重启
6目标存储已添加且可用空间满足本次交付容量基础备份设施 → 数据存储库容量 ≥ 交付约定值,剩余比例 > 20%
7被保护主机连接正常,Agent 状态在线被保护资源 / 主机保护组 → 成员状态主机可连接且代理在线
8使用批准的测试主机完成首次备份主机保护策略 → 更多 → 开始任务结束且成功
9历史任务结果为成功,并能找到与任务对应的还原点历史任务 / 主机保护数据 → 还原点任务成功且还原点数量、时间与任务一致
10安装完成后无遗留告警,日志目录占用正常系统监控 / 日志与告警无未处理严重告警,日志占用未接近上限

第 4 项在第 6 章完成,第 6 项在第 8 章完成,第 7 项在第 7 章完成,第 8、9 项在第 9 章完成。也就是说,这份清单要到卷二、卷三走完才能全部打勾。

5.7 离线安装​

介质与依赖​

离线交付形态包括:与操作系统集成的 ISO 镜像(引导即安装)、单独提供的 LiveCD 引导镜像(约 300 MB,用于验证处理器特性与引导)、依赖包 tar.gz 与 rpm 集合、以及子节点镜像。

序号介质用途形态
1管理平台安装介质安装管理节点ISO / tar.gz / 镜像包
2数据服务组件介质数据获取与存储服务镜像包
3依赖包集合补齐操作系统依赖tar.gz + rpm
4Agent 安装包被保护主机接入exe / msi / rpm / deb
5引导镜像(如需)硬件与引导自检LiveCD / USB
6校验清单完整性校验sha256 / gpg
7许可材料离线激活许可证数据文件 + 私钥文件

制作与传递要求:使用空白 U 盘或一次性光盘刻录,刻录后回读校验;跨网传递前做病毒扫描并登记交接记录。

依赖安装的参照方式是"一个基础 rpm 加一个依赖包集合 tar.gz,解压得到依赖目录后执行依赖安装脚本":

# 离线依赖安装骨架(包名与脚本名为占位值)
sudo rpm -ivh <基础依赖 rpm>
tar -zxvf <依赖包集合>
cd <依赖目录> && sudo ./<依赖安装脚本>

# 逐项复核已安装包清单,留存前后对比
rpm -qa | sort > /tmp/rpms_after.txt
序号依赖类别检查命令
1基础工具(tar、gzip、which、curl)tar --version; gzip --version
2容器运行时docker version
3数据库 / 元数据mysql --version
4反向代理与证书工具nginx -v; openssl version
5系统库(glibc、libaio、numactl 等)rpm -q <包名>
6时间同步(chrony / ntp)chronyc tracking
7脚本运行时(如需要)python3 -V

镜像导入​

标准做法是在有外网的构建或中转机上 docker save 导出,经介质传入内网后 docker load 导入,并用镜像 digest 核对一致性。

# 有外网侧:导出镜像
docker pull <仓库>/<镜像>:<tag>
docker save -o <镜像包>.tar <仓库>/<镜像>:<tag>
sha256sum <镜像包>.tar > <镜像包>.tar.sha256

# 内网侧:校验并导入
sha256sum -c <镜像包>.tar.sha256
docker load -i <镜像包>.tar
docker images --digests
步骤检查项判定标准
导出save 产物大小与 sha256与导出侧记录一致
传递介质校验回读哈希一致
导入load 无报错退出码为 0
复核docker images --digestsdigest 与导出侧一致
启动容器可启动并监听端口日志无致命错误

私有仓库​

内网统一分发镜像可选三种方案:

方案适用规模优点注意点
单机 registry小型、少量节点部署简单无高可用、无细粒度权限
Harbor 等企业仓库中大型、多项目权限、审计、复制、漏洞扫描需额外资源与维护
随平台内置仓库与平台同生命周期免额外部署与平台版本绑定,升级需同步

如使用 HTTP 仓库,需在各节点配置 insecure-registries;生产环境建议启用 HTTPS 与认证。

离线激活​

离线授权采用「指纹文件 + 授权文件」模式:在平台导出设备指纹或记录设备 ESN,通过外部渠道换取授权文件后用介质导入。全流程不需要管理平台直接出网,但需要一台可访问外网的终端或人工通道完成申请与回传。

完整步骤、界面入口与失败处置见第 6 章。这里只列风险点:

风险点处置建议
指纹或 ESN 与实际设备不一致重新下载指纹,核对设备序列号后再申请
许可证文件损坏比对提供方哈希,重新获取
私钥文件泄露风险私钥仅用于导入,不写入文档、截图或工单明文附件
系统时间偏差导致校验失败激活前先完成时间同步
介质跨网传递风险传递前病毒扫描并登记交接记录

离线验收​

除功能可用外,还要验证"全程无外网依赖":在隔离网络中断开所有出网路由后重放安装与首次备份流程,并记录每一步是否需要访问公网。

序号验收项判定依据
1介质完整清单内介质齐全,哈希校验通过
2依赖齐备依赖脚本执行无缺包报错
3镜像导入成功digest 与交付记录一致
4名称解析与时间正确内网 DNS 或 hosts 可用,时间同步正常
5管理页面与基础服务正常HTTPS 可访问,组件状态正常
6无外网依赖断网重放安装与首次备份均成功
7许可激活离线激活完成且状态有效
8首次备份与还原点用批准的测试主机完成首次备份并能找到对应还原点

5.8 卸载与重装​

重装的核心风险不是程序删除,而是数据、配置与授权的处置顺序。遵循「先备份 → 再卸载 → 后重装 → 再验证」,并在卸载前明确哪些目录必须保留。

数据保留规则​

数据类别处置建议卸载后是否保留恢复方式
备份数据(存储库)独立磁盘或目录保留重装后重新挂载或导入存储库
元数据 / 数据库先导出备份必须先备份重装后导入
平台配置导出配置文件保留副本重装后导入或重建
日志与审计按合规要求归档按保留策略归档查询
缓存 / 临时文件可删除不保留自动重建
证书与私钥单独备份并加密保管保留重装后导入

配置与授权保留规则​

对象保留规则重装后动作
平台配置导出后保留副本导入或按清单重建
用户与权限随配置导出导入后复核角色
服务器凭证属敏感数据,单独加密封存重新录入或导入
许可证数据文件保留原件与哈希记录重新加载
私钥文件保留原件,禁止写入文档重新导入
证书单独备份重新导入
改系统时间可能让授权失效

非永久授权的系统在修改系统时间后可能出现授权异常并需要重新授权。重装、换机或大幅调整系统时间之前,先确认授权的复用与迁移条件。

重装步骤​

  1. 变更审批:登记重装原因、影响范围、执行窗口与回退方案。
  2. 备份数据与配置,记录当前授权信息。
  3. 执行卸载:停止作业 → 停止服务 → 卸载程序或容器 → 按规则处置目录。
  4. 复核操作系统环境:时间、依赖、端口占用、残留进程与目录。
  5. 按 5.2 至 5.5 重新安装并初始化。
  6. 导入配置与授权,重新挂载存储库。
  7. 用批准的测试主机做首次备份与还原点核对。
  8. 更新资产与配置记录,关闭变更单。
# 卸载前的状态记录
docker ps -a --format 'table {{.Names}}\t{{.Image}}\t{{.Status}}'
docker inspect <容器名> > /tmp/<容器名>_inspect.json
docker logs <容器名> > /tmp/<容器名>.log 2>&1
ss -lntp > /tmp/listen_before_uninstall.txt

失败回退​

回退材料必须在卸载前准备完毕;触发条件、步骤与验证方式应写入变更单。

环节失败现象回退动作验证
卸载卸载脚本报错、服务无法停止停止操作,保留现场与日志,联系产品支持服务与数据目录未受损
安装安装脚本返回非 0、镜像加载失败清理残留后重试一次;仍失败则回到旧版本旧版本可启动
初始化数据库初始化失败、页面无法访问还原配置备份与数据库备份页面与组件状态正常
授权授权加载失败使用重装前保留的授权材料或重新申请许可状态有效
存储库存储库无法识别重新挂载并按存储库章节重建映射还原点可检索
业务验证首次备份或恢复失败停止上线,恢复旧环境并升级故障等级备份与恢复成功

回退记录应包含:触发时间、触发原因、执行的命令与输出、恢复完成时间、遗留问题与责任人。

涉及存储库、许可、证书、加密密码的回退要重做数据可读性验证

这四类对象回退之后,页面正常不等于数据还能读出来。必须重新做一次"能列出还原点并完成一次小规模恢复"的验证,见第 12 章。

常见问题​

容器起来了,是不是就算装完了? 不算。按 5.6 的清单,要到许可证生效、存储库可用、测试主机跑完一次备份并能找到对应还原点,这次安装才算完成。只看 docker ps 会漏掉版本基线不符、许可功能缺失、存储容量不足这三类最常见的失败。

本章的安装命令能直接复制到生产上跑吗? 不能。所有脚本名、参数名、目录名都是骨架或参照产品的写法,源文档本身也标注了"不可直接在生产执行"。执行前必须用产品方的正式安装手册替换。

管理页面到底监听 443 还是 80? 源文档的部署拓扑写 443,而现场核查记录的是通过 HTTP 80 访问页面。两者不一致,装完后以实际监听为准(ss -lntp),并按第 6 章决定是启用 HTTPS 还是做 80 跳转。

离线环境怎么确认真的不需要外网? 断开所有出网路由,重放一次安装与首次备份流程。能走通才算"无外网依赖",装的时候顺手记下每一步是否尝试访问公网。

重装之后原来的还原点还在吗? 备份数据本身在存储库里,按规则保留即可;但"还原点能不能被平台重新检索出来"取决于元数据是否完整恢复,这一项源文档没有给出结论。重装前必须先导出元数据 / 数据库备份,重装后用"能列出还原点并完成一次小规模恢复"来验证。

升级和重装是一回事吗? 不是。版本升级与回退有单独的流程,见第 16 章。本章只覆盖同版本的卸载重装。

相关章节​