opsctl06

Registry

用严格 YAML 描述单机生产环境的期望状态。

内容经过人工双语校对

Registry 是 opsctl 的声明式事实源。SQLite 只用于本地状态与索引;服务、端口、域名、卷、快照和备份策略仍由 YAML 管理。

默认结构

/srv/server-registry/
├── services.yml
├── ports.yml
├── domains.yml
├── volumes.yml
├── snapshots.yml
├── backups.yml
├── policies.yml
├── approvals/
├── plans/
└── history/

验证 Registry

opsctl registry validate --json
opsctl doctor --json

registry validate 检查 schema 与引用关系;doctor 进一步检查端口冲突、生产快照覆盖、公开数据库端口和其他策略问题。

服务声明

一个服务记录应明确:

  • 稳定 ID 与环境。
  • 部署类型,例如 systemd、Compose 或静态站点。
  • 项目路径与健康检查。
  • 端口、域名和卷的所有权。
  • 是否要求 before_deploy 备份门禁。

从观察结果开始

opsctl scan --json
opsctl registry drift list --json
opsctl registry drift explain <drift-id> --json

观察结果不是事实源。你可以把明确归属的资源 adoption 到 registry,或为暂时接受的漂移登记带有效期的 ignore;两者都应保留审计记录。

修改原则

  1. 先生成或审查 draft。
  2. 运行严格验证。
  3. 检查 diff 是否只包含目标资源。
  4. 对生产 mutation 保留快照和回滚计划。

不要直接把扫描结果整体提升为生产事实。未知归属、共享卷和公开端口需要人工判断。

本页目录