automated-deployment
v0.2.0
Published
An agent skill for safe, evidence-based remote deployment with SSH, Git/CI, Ansible, rollback, and audit reporting.
Maintainers
Readme
automated-deployment
可复用的 Agent Skill:用户指定服务和目标后,自动补齐基础环境、部署、验收和清理;常规安装不再逐组件索要确认。
能力范围
- 从源码真实入口、有效配置、前端调用链解析完整组件/依赖/初始化/SQL,并校验计划与实际交付闭环
- 默认识别并安装项目必需的运行时、数据库、缓存、容器与代理,兼容已有环境则复用
- SSH 连接、主机识别、部署身份生命周期与清理
- Git / CI/CD 交付与版本锁定
- Ansible 执行引擎评估与安全骨架
- 发布、健康检查、回滚与回滚后健康检查
- 本地文件/制品交付,无需 Git 身份
- 可选受控网页操作:更新失败恢复旧版本、新部署失败停止新实例及验证标签
- 步骤日志、事件时间线和脱敏
- 离线 HTML 部署报告与历史运行审计:前端、后端、中间件及外部依赖完整分类,不因局部操作遗漏其他服务
- 结构与最小站点配置分开授权;复用适用的用户连接偏好,提前检查机构参数与应用会话 SQL 兼容性
安装
npm install automated-deployment安装到项目的 node_modules 后,可以使用 Skills CLI 的实验性同步功能把包中的根目录 SKILL.md 同步到 Agent:
npx skills experimental_sync -y也可以直接从 Git 仓库安装本 Skill;npm 包主要用于版本化分发和在 node_modules 中复用。
包内容
SKILL.md:Skill 主说明agents/openai.yaml:Agent 展示元数据references/:部署流程、安全身份、Git/CI、日志和 HTML 报告参考assets/:Ansible 安全骨架与报告模板scripts/:离线部署契约/业务证据评估、报告渲染及可选受控恢复脚本
使用前提
明确的部署请求覆盖当前目标所需的常规环境安装、非破坏性配置、发布和业务验收;Agent 自动读取材料、固化计划并执行,不要求用户逐项审批、选择包管理器或执行命令。目标不明、凭据/权威数据材料缺失、覆盖数据、影响共享服务或扩大权限等情况才询问。仅提供凭据不算部署授权;用户锁定的版本/组件范围优先。
默认直接部署或复用已授权的现有流水线;不因发现 Git 就强问是否建设 CI/CD,不额外安装监控平台。详细边界见 SKILL.md 与 references/pipeline.md。
Python 报告脚本只使用标准库;Ansible 骨架不是开箱即用的业务 Playbook,使用前需要按目标项目完成适配和审批。
报告位置与阅读体验
- 计划、日志和报告生成在用户打开的项目文件夹内,统一入口为
<workspace_dir>/artifacts/deployments/index.html;不会随脚本写到技能安装目录。 - 从其他目录调用时传
--workspace-dir(PowerShell 为-WorkspaceDir)。省略 deployments-dir 时默认写到该工作目录下的artifacts/deployments,显式 workspace 之外及技能目录内的输出会被拒绝。 - 页面首先展示完整分类服务清单,再展示验收与执行摘要。运行中后台读取,只在数据变化时更新并保留阅读状态;最新部署结束后停止,不再周期性整页刷新。
发布
维护者在登录 npm 后执行:
npm publish --registry=https://registry.npmjs.org/发布前建议先检查将要进入 tarball 的文件:
npm pack --dry-run不要把 npm 密码、OTP 或访问令牌写入聊天记录、命令行参数、仓库或日志;在 npm CLI 的交互提示中输入,或使用 npm 官方支持的令牌登录方式。
完整业务验收(不是仅启动)
使用 references/business-acceptance.md 和纯标准库 scripts/evaluate_deployment_acceptance.py。它只评估已采集、已脱敏的证据,不发网络请求、不执行部署命令:
python scripts/evaluate_deployment_acceptance.py --input captured-evidence.json --output acceptance.json退出码:0=所声明范围通过,1=失败或未验证,2=输入无效。startup-only 即使返回0也永远不表示整套业务通过;整体目标与当前JDBC/启动等操作范围必须分开记录。HTTP200但业务code失败、Schema缺失、跳过测试、过期快照、未覆盖后台周期都会阻断相应必选项。把输出写入运行清单 acceptance 后,统一报告显示整体业务验收及其与局部进展的区别。
回归测试:python -m unittest discover -s tests -p "test_*.py"。技能测试通过不代表目标服务已健康;目标服务的真实业务证据另行记录。
源码解析与全部服务防漏
先按 references/source-analysis.md 直接审阅源码和构建产物,再生成私密 deployment-contract。离线检查器不拉源码、不连接服务器,也不声称自动发现所有依赖:
python scripts/evaluate_deployment_contract.py --input deployment-contract.json --phase plan --output contract-plan.json
python scripts/evaluate_deployment_contract.py --input deployment-contract.json --phase delivery --output contract-delivery.jsonassets/deployment-contract.example.json 故意保留 pending 状态,不能直接作为成功证据。all 覆盖已发现的全部未排除组件,selected 递归包含必需依赖;缺服务、占位路由、漏参、必要配置/SQL/任务检查未验证均不通过 delivery。新的多服务业务验收设置 requires_dependency_closure: true,由 dependency-closure 门禁强制使用交付模型,而不是计划或容器列表。其他业务证据仍独立验收。
本地制品与网页恢复
本地文件交付与 Git 身份验证无关。先锁定制品摘要及旧版本基线,再按批准计划直接在同机或经 SSH 向目标机交付。
报告默认离线只读;需要点击回退/停止时,参照 references/service-recovery.md 适配并审批项目控制计划,使用可选 scripts/serve_deployment_controls.py 同机桥接器,或接入已有受控平台。桥接器不依赖 Git,不把凭据写入 HTML,只执行固定审批动作,并通过实际验证返回结果。它不是公网生产控制平台,也不会仅凭一个按钮自动获得目标机权限。
assets/deployment-controls.example.json 默认不可执行。真实服务的 preflight / execute / verify 入口需要按服务管理器和身份模型完成项目适配;不会因为安装 npm 包而启动监听、登录平台或变更服务。
当前许可证元数据为 UNLICENSED;公开分发本身不授予开源许可。
