新环境配置契约校验
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/verify-freshly-provisioned-server-or-container-matches-expected-services-ports-and-files
技能介绍
它解决什么问题
镜像构建完成、配置下发之后,机器真的处于你预期的状态吗?systemctl is-active 返回 active,不代表监听端口和文件权限没漂移。手工 curl 一遍端口、ls 一下配置文件,既慢又容易漏项,也无法沉淀成可重复执行的检查清单。
工作原理
这个技能把预期状态声明与实际状态验证分离:
- 用 Goss 声明契约:以配置形式写出目标机器应有的服务、端口和文件;
- 快速通过/失败:在 provisioning 完成后执行校验,得到明确的 pass/fail 结论;
- 覆盖服务健康与系统漂移:不止看进程是否存在,还核对端口监听与文件状态。
典型触发时机是 provisioning、镜像构建或配置变更之后。
适用边界
- 需要目标系统上已安装
goss二进制,且具备shell访问权限; - 校验资源的权限要足够;
- Docker 容器可配合
dcgoss,Kubernetes 场景涉及 healthcheck 时需另行适配; - 上游文档见
goss.readthedocs.io。
使用场景
- 镜像构建完成后,确认容器内服务、端口和文件仍符合声明的契约。
- 新服务器 provisioning 结束后,快速判断服务健康与系统漂移。
- 修改配置后重发镜像,验证机器上的端口监听与文件未偏离预期。
- 用 dcgoss 对容器做一轮 pass/fail 检查,再放行后续部署。
适合人员
- 负责 provisioning 服务器的运维工程师,需要在交付前确认服务、端口和文件与契约一致。
- 构建容器镜像的 DevOps 工程师,希望在构建或推送后快速获得 pass/fail 结论。
- 管理 Kubernetes 工作负载的 SRE,需要在发布或变更后验证 healthcheck 相关状态。
- 审计新配置机器的安全工程师,希望用可重复的检查项替代手工抽查。