# 第一阶段验收记录 此文为最初回环预览的历史快照;用户后续免登录要求的当前状态见 [内网验收](acceptance-lan-2026-10-13.md)。 核对日期:2026-10-13(北京时间)。结论:受限网页预览与轻量流程验证通过;正式 GPU 测试尚未接入。 ## 本轮变更 - 新建本地私有脚本库工作目录及空 Git 仓库,所有文件未暂存;提交数为 0,无远程仓库。 - 新建服务器目录 `/adamwen-work-space/xas-test-library` 和容器 `adamwen-test-console`。 - 网页使用 Rundeck 6.2.1,基础镜像摘要 `sha256:63d12aefbbd129a121d2af7d97abfaa64c3cbd7756063f74dbf3ab3377d136bd`。 - 运行镜像 `adamwen/test-console:20261013-1`,镜像 ID `sha256:429dfa1322c8e72b25fb82d5a1a6452af4968f30f5dbb6ee6937825aadd38ab7`。 - 镜像增加 Python 3.10.6-1~22.04.1、python3-bcrypt 3.2.0-1build1,宿主机运行时未升级。 - 只导入一个轻量任务,UUID 为 `ef76123d-f532-42c7-b7f7-a78f9231c18d`。旧公司套件与两个试验目录只登记来源。 ## 行为测试 | 验证环境 | 本轮最终结果 | |---|---| | 本地 Windows | 10 项中 6 通过、4 跳过;跳过原因是 Linux 进程组及当前账号无法创建目录链接 | | 00088 Linux | 10/10 通过,耗时 4.087 秒,无跳过 | 覆盖:成功日志和模拟结果、脚本非零退出、退出 0 但报告无效、重复编号不覆盖、路径穿越/无效参数拒绝、超时清理、取消父子进程、运行根目录和子目录链接拒绝。 新增代码先观察失败测试,再完成实现;独立审查指出的运行目录父链接问题已补回归测试并修复。修复后的全套 Linux 测试通过。没有未处理的审查发现。 ## Rundeck 真实任务链路 | 执行编号 | 场景 | Rundeck 状态 | 业务状态 | 清理确认 | |---|---|---|---|---| | 1 | 成功 | succeeded | succeeded | true | | 2 | 主动失败 | failed | failed | true | | 3 | 无效报告 | failed | invalid_result | true | | 4 | 2 秒超时 | failed | timed_out | true | | 5 | 运行后取消 | aborted | cancelled | true | | 6 | 浏览器点击运行 | succeeded | succeeded | true | 前五项在 11:14:36 至 11:14:43 完成。第六项在 11:19:28 至 11:19:29 完成,运行器记录约 0.64 秒。以上均为 synthetic 流程验收数据,没有使用 GPU 或模型接口。 未登录 API 返回 403;普通操作角色执行任意命令返回 403;同一任务正在执行时再次提交返回 409。 ## 真实浏览器 使用独立 Edge 浏览器上下文,通过 SSH 转发登录普通操作账号,核对任务列表和参数页;点击 Run Job Now 产生执行 6;核对完成页、三条进度日志和结构化结果。 页面的 Succeeded 文案由 CSS `::after` 生成,最初按 DOM 文字精确定位的自动等待超时。服务端记录与截图均成功,后续只读取已有执行 6,确认伪元素内容为 `"Succeeded"` 并打开日志页,没有因文字定位问题重复提交任务。 截图:[任务参数页](images/job.png)、[执行日志页](images/logs.png)。视口为 1440 × 1000。 ## 共享服务与隔离证据 - 原有 `dengyuyun-joy-dsv41-trial` 容器 ID 为 `114ceebc787845e45e1abcb0a46ac962529c28a4b865894cd3581234cd729e1a`,仍为 running,启动时间为 2026-10-12 13:29:36(北京时间),RestartCount=0。它的启动时间早于本轮操作,未被本轮重启。 - GPU 查询仍看到 VLLM::Worker_TP0~TP7;没有创建新的 GPU 任务。本轮没有调用模型接口,不能把进程存活当作模型业务质量验证。 - 新容器 DeviceRequests=null、Devices=[]、Privileged=false,容器内 `/dev/nvidia*` 为空。 - 所有绑定挂载都在本项目目录下;没有 `/dengyuyun-joy-work-space`、共享模型或 Docker socket 挂载。 - 只发布 `127.0.0.1:14440 → 4440`,未改防火墙和旧端口。 - 配置上限为 2 CPU、2 GiB 内存、256 进程。检查时新容器 CPU 约 0.06%、内存约 1.275 GiB;这是观察值,不是持续性能承诺。 ## 过程中的问题与修复 - 首次启动登录页早于 API 就绪;将准备检查改为 API 的未认证响应,避免把加载页 HTTP 200 当作可用。 - 权限验收请求最初缺少 project 参数,返回 400;补齐官方 API 参数后得到明确 403。 - YAML 的固定标识改用 uuid,并与实际已创建任务对齐,保留同一任务;原 404 请求没有创建运行记录。 - 浏览器输出使用 UTF-8;状态文字采用实际 CSS 和截图证据核验。 - 独立审查发现运行目录父链接可跨出项目;已在任何 mkdir/chown/chmod 前核验完整运行路径。 ## 交付边界 用户仍需通过 README 中的交互式工具设置自己的网页登录密码,明文不进入聊天、源码或参数。临时验收账号在交付收尾时撤销。 当前为单实例 H2 预览,未配置组织 SSO、正式数据库、自动备份、系统自启或公司网访问入口。运行日志与结果尚无自动清理;没有新增定时任务。 长时 GPU 压测、模型性能/质量、正式脚本停止语义与多人资源调度均未验证。公司仓库尚未建立,因此远程 Git 集成未验证。 恢复时只操作本项目容器及目录;保留数据库和结果。版本回退不自动恢复数据库,后续升级需另行备份并核验数据兼容性。 ## 核对过的官方资料 - [Rundeck Docker 配置](https://docs.rundeck.com/docs/administration/configuration/docker.html) - [认证和可重载密码文件](https://docs.rundeck.com/docs/administration/security/authentication.html) - [API:导入、执行与取消](https://docs.rundeck.com/docs/api/)