第 5 章 · 安装管理平台(含离线安装)
适用对象:交付工程师 · 阅读约 14 分钟 · 对应产品界面版本 v1.2.0
管理平台是整套系统的控制面。装它的时候最容易犯的错是把"容器起来了"当成"安装成功了"——实际上要到许可证加载、存储库可用、测试主机跑完一次备份并产生还原点,这次安装才算完成。本章按"准备材料 → 前置环境 → 执行安装 → 初始化 → 自检"的顺序展开,并单独给出离线场景和卸载重装的处置口径。
读完这一章会做:
- 区分管理端部署、基础设施接入、Agent 分发这三件不同的事,分别安排材料与验收
- 按六项清单准备安装材料并完成校验
- 完成时间同步、数据盘、容器运行时、中间件、端口五项前置检查
- 在离线环境里导入镜像、补齐依赖并完成"全程无外网依赖"的验收
- 在重装前把数据、配置与授权按规则保留下来,失败时能回退
源文档给出的安装命令、脚本名、参数名全部是通用骨架或第三方产品的写法,不是 SupDRC 的正式取值,文中也明确写了"不可直接在生产执行"。本章照录这些骨架是为了让你知道要准备什么、记录什么,执行前必须用产品方提供的正式安装手册替换掉每一个占位值。凡属占位的地方本章都留了 TODO。
源文档是把多家第三方产品的资料做品牌替换后拼进来的,「本系统」是替换残留,同一份文档里的多个「本系统」甚至指向不同产品。本章凡是引用了以「本系统……」叙述的交付形态、安装顺序、默认值、服务名,都会明确标注指代不明,未确认是否为 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 | 依赖与中间件包 | 覆盖目标操作系统与架构,可离线安装 |
| 4 | Agent 安装包 | 与目标主机操作系统、架构匹配 |
| 5 | 许可证材料 | 许可证数据文件与私钥文件齐备,来源为正式渠道 |
| 6 | 回退材料 | 上一版本安装包、配置备份、卸载方法 |
安装包清单至少覆盖七类(类别划分通用,具体文件名以产品交付清单为准):
| 序号 | 文件类别 | 用途 | 校验要求 |
|---|---|---|---|
| 1 | 容器运行时 / 编排组件 | 承载管理平台容器 | 版本与基线一致 |
| 2 | 管理平台镜像包 | 管理服务 | 镜像 digest + 介质哈希 |
| 3 | 数据服务镜像包 | 数据 / 元数据服务 | 镜像 digest + 介质哈希 |
| 4 | Agent 安装包 | 被保护主机接入 | 哈希 + 数字签名 |
| 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 + digest | supdrc:1.0(实例记录,非基线) |
| 数据服务镜像 | 镜像名 + tag + digest | supmirror-backupserver:2.0(实例记录,非基线) |
| 许可证版本 | 许可证版本字段 | 2.0(与产品版本不是同一对象) |
| Agent 版本 | Agent 包版本 | 未取得 |
| 校验值 | SHA-256 / 镜像 digest | 逐项登记 |
5.3 前置环境
前置步骤固定为:时间同步 → 数据盘与目录 → 容器运行时 → 中间件 → 端口与防火墙自检。
- 配置时间同步(chrony / NTP),保证管理节点、数据服务与 Agent 时间一致。
- 准备数据盘并规划数据目录,必要时设置独立挂载点。
- 安装容器运行时并设置开机自启。
- 安装数据库、反向代理等中间件(与平台分离部署时)。
- 按第 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 访问管理地址 → 使用初始管理员账号登录 → 设置时间、网络与存储 → 下载指纹文件申请授权 → 上传授权文件激活。
- 确认管理服务与数据服务容器或进程处于运行状态,并检查端口监听。
- 浏览器访问
https://<管理地址>,生产环境应导入受信任证书而不是长期忽略证书告警。 - 使用交付的初始管理员账号登录,登录后立即修改口令。
- 按第 18 章建立管理员、审计员等必要账号并分配角色,不建议多人共用同一管理员账号。
- 核对系统时间与时区,必要时启用 NTP。
- 配置网络与域名解析,确认存储可用空间。
- 导入许可证材料并复核授权类别、版本与有效期,见第 6 章。
- 执行 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 |
| 4 | Agent 安装包 | 被保护主机接入 | 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 --digests | digest 与导出侧一致 |
| 启动 | 容器可启动并监听端口 | 日志无致命错误 |
私有仓库
内网统一分发镜像可选三种方案:
| 方案 | 适用规模 | 优点 | 注意点 |
|---|---|---|---|
| 单机 registry | 小型、少量节点 | 部署简单 | 无高可用、无细粒度权限 |
| Harbor 等企业仓库 | 中大型、多项目 | 权限、审计、复制、漏洞扫描 | 需额外资源与维护 |
| 随平台内置仓库 | 与平台同生命周期 | 免额外部署 | 与平台版本绑定,升级需同步 |
如使用 HTTP 仓库,需在各节点配置 insecure-registries;生产环境建议启用 HTTPS 与认证。
离线激活
离线授权采用「指纹文件 + 授权文件」模式:在平台导出设备指纹或记录设备 ESN,通过外部渠道换取授权文件后用介质导入。全流程不需要管理平台直接出网,但需要一台可访问外网的终端或人工通道完成申请与回传。
完整步骤、界面入口与失败处置见第 6 章。这里只列风险点:
| 风险点 | 处置建议 |
|---|---|
| 指纹或 ESN 与实际设备不一致 | 重新下载指纹,核对设备序列号后再申请 |
| 许可证文件损坏 | 比对提供方哈希,重新获取 |
| 私钥文件泄露风险 | 私钥仅用于导入,不写入文档、截图或工单明文附件 |
| 系统时间偏差导致校验失败 | 激活前先完成时间同步 |
| 介质跨网传递风险 | 传递前病毒扫描并登记交接记录 |
离线验收
除功能可用外,还要验证"全程无外网依赖":在隔离网络中断开所有出网路由后重放安装与首次备份流程,并记录每一步是否需要访问公网。
| 序号 | 验收项 | 判定依据 |
|---|---|---|
| 1 | 介质完整 | 清单内介质齐全,哈希校验通过 |
| 2 | 依赖齐备 | 依赖脚本执行无缺包报错 |
| 3 | 镜像导入成功 | digest 与交付记录一致 |
| 4 | 名称解析与时间正确 | 内网 DNS 或 hosts 可用,时间同步正常 |
| 5 | 管理页面与基础服务正常 | HTTPS 可访问,组件状态正常 |
| 6 | 无外网依赖 | 断网重放安装与首次备份均成功 |
| 7 | 许可激活 | 离线激活完成且状态有效 |
| 8 | 首次备份与还原点 | 用批准的测试主机完成首次备份并能找到对应还原点 |
5.8 卸载与重装
重装的核心风险不是程序删除,而是数据、配置与授权的处置顺序。遵循「先备份 → 再卸载 → 后重装 → 再验证」,并在卸载前明确哪些目录必须保留。
数据保留规则
| 数据类别 | 处置建议 | 卸载后是否保留 | 恢复方式 |
|---|---|---|---|
| 备份数据(存储库) | 独立磁盘或目录 | 保留 | 重装后重新挂载或导入存储库 |
| 元数据 / 数据库 | 先导出备份 | 必须先备份 | 重装后导入 |
| 平台配置 | 导出配置文件 | 保留副本 | 重装后导入或重建 |
| 日志与审计 | 按合规要求归档 | 按保留策略 | 归档查询 |
| 缓存 / 临时文件 | 可删除 | 不保留 | 自动重建 |
| 证书与私钥 | 单独备份并加密保管 | 保留 | 重装后导入 |
配置与授权保留规则
| 对象 | 保留规则 | 重装后动作 |
|---|---|---|
| 平台配置 | 导出后保留副本 | 导入或按清单重建 |
| 用户与权限 | 随配置导出 | 导入后复核角色 |
| 服务器凭证 | 属敏感数据,单独加密封存 | 重新录入或导入 |
| 许可证数据文件 | 保留原件与哈希记录 | 重新加载 |
| 私钥文件 | 保留原件,禁止写入文档 | 重新导入 |
| 证书 | 单独备份 | 重新导入 |
非永久授权的系统在修改系统时间后可能出现授权异常并需要重新授权。重装、换机或大幅调整系统时间之前,先确认授权的复用与迁移条件。
重装步骤
- 变更审批:登记重装原因、影响范围、执行窗口与回退方案。
- 备份数据与配置,记录当前授权信息。
- 执行卸载:停止作业 → 停止服务 → 卸载程序或容器 → 按规则处置目录。
- 复核操作系统环境:时间、依赖、端口占用、残留进程与目录。
- 按 5.2 至 5.5 重新安装并初始化。
- 导入配置与授权,重新挂载存储库。
- 用批准的测试主机做首次备份与还原点核对。
- 更新资产与配置记录,关闭变更单。
# 卸载前的状态记录
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 章。本章只覆盖同版本的卸载重装。