关于 devops-automator
devops-automator 是面向 DevOps 工作的技能,涵盖 CI/CD、基础设施即代码、容器和部署自动化。它为管理交付流程与基础设施的工程师提供模式、验证指导和示例产物。
主要功能
- 01CI/CD 流水线设计
- 02使用 Terraform、AWS CDK 和 Pulumi 编写基础设施即代码
- 03Docker 与 Kubernetes 配置
- 04使用 ArgoCD 和 Flux 的 GitOps 模式
- 05验证工作流与基础设施文件
适用场景
- 01设计分阶段的 CI/CD 流水线
- 02创建可复用的 Terraform 模块和 Kubernetes 清单
- 03检查容器与基础设施配置中的风险
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ curiositech/ some_claude_skills --skill devops-automator安装后在 Claude Code 中输入/devops-automator确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
CHANGELOG.md.claude-plugin/plugin.jsonreferences/dockerfile-multistage.dockerfilegithub-actions-patterns.yamlkubernetes-deployment.yamlterraform-eks-module.tfscripts/validate-devops-skill.sh详细介绍
DevOps 自动化工程师
专长于 CI/CD 流水线、基础设施即代码、容器编排和部署自动化的 DevOps 专家。
激活条件
适用于: “CI/CD”、“GitHub Actions”、“部署流水线”、“Terraform”、“基础设施即代码”、“IaC”、“Docker”、“Kubernetes”、“K8s”、“Helm”、“容器编排”、“GitOps”、“ArgoCD”、“部署自动化”、“密钥管理”、“监控配置”
不适用于: 应用开发 → 语言技能 | 数据库设计 → data-pipeline-engineer | API 设计 → api-architect
快速入门
- 定义部署策略:蓝绿部署、金丝雀发布或滚动部署
- 选择 IaC 工具:使用 Terraform 管理云资源,使用 Helm 管理 K8s 应用
- 设计 CI 阶段:lint → test → security scan → build → deploy
- 实施 GitOps:使用 ArgoCD 同步配置仓库
- 添加可观测性:Prometheus 指标、结构化日志
核心能力
| 领域 | 工具和技术 |
|---|---|
| CI/CD | GitHub Actions、GitLab CI、Jenkins |
| IaC | Terraform、AWS CDK、Pulumi |
| 容器 | Docker、Kubernetes、Helm |
| GitOps | ArgoCD、Flux、Kustomize |
| 监控 | Prometheus、Grafana、ELK/EFK |
架构模式
CI/CD 流水线流程
Code Commit → Build → Test → Security Scan → Package
↓
Monitor ← Release Staging ← Smoke Tests ← Deploy Dev
↓
Manual Approval
↓
Deploy Production
GitOps 架构
App Repo ──CI──▶ Config Repo ──ArgoCD──▶ K8s Cluster
▲ │
└────Continuous Sync─────┘
参考文件
完整可运行示例位于 ./references/:
| 文件 | 描述 | 行数 |
|---|---|---|
github-actions-patterns.yaml | 完整的 CI/CD 流水线 | 217 |
terraform-eks-module.tf | 生产级 EKS 集群 | 282 |
kubernetes-deployment.yaml | Deployment + HPA + ArgoCD | 200 |
dockerfile-multistage.dockerfile | 优化的多阶段构建 | 51 |
反模式(请避免)
1. YAML 复制粘贴泛滥
症状:多个仓库中存在几乎相同的重复工作流文件
解决方案:可复用工作流、Helm chart、Kustomize 基础配置、Terraform 模块
2. 在代码中硬编码密钥
症状:API 密钥、密码被提交到 git
解决方案:密钥管理器(Vault、AWS SM)、密封密钥、来自安全来源的环境变量
3. 没有回滚策略
症状:部署失败时没有预案,需要人工介入
解决方案:蓝绿部署、带自动回滚的金丝雀发布、ArgoCD 自动回滚
4. 单体 CI 流水线
症状:单个耗时 45 分钟的流水线,每次提交都重新构建所有内容
解决方案:并行作业、缓存、增量构建、基于路径的触发器
5. 没有资源限制
症状:没有 CPU/内存限制的 K8s pod 耗尽所有主机资源
解决方案:始终设置 requests/limits,使用 LimitRanges 和 ResourceQuotas
6. 在容器中以 root 身份运行
症状:Dockerfile 中没有 USER 指令,pod 以特权模式运行
解决方案:添加 USER 指令,设置 securityContext.runAsNonRoot: true
7. 使用 :latest 标签
症状:生产环境中使用 FROM node:latest 或 image: app:latest
解决方案:固定具体版本,使用带 SHA 摘要的不可变标签
8. 没有健康检查
症状:Dockerfile 缺少 HEALTHCHECK,没有存活性/就绪性探针
解决方案:添加健康检查端点,配置适当超时时间的探针
9. 单点故障
症状:replicas: 1,没有 pod 反亲和性,仅使用单个可用区
解决方案:设置多个副本、pod 反亲和性和拓扑分布约束
10. Terraform 状态存储在本地文件中
症状:terraform.tfstate 被提交到 git 或存储在本地
解决方案:使用远程后端(S3+DynamoDB、Terraform Cloud、GCS)
11. 没有并发控制
症状:同一分支存在多个 CI 运行,导致部署竞争条件
解决方案:使用并发组,实现部署锁
12. 忽略安全扫描
症状:没有漏洞扫描,CI 中没有密钥检测
解决方案:使用 Trivy、Snyk 或 Grype 扫描漏洞;使用 TruffleHog 检测密钥
13. 无漂移检测
症状:基础设施被手动更改,配置与代码不一致
修复:使用 ArgoCD 检测差异,在 CI 中运行 terraform plan,定期审计
14. IAM 权限过于宽松
症状:IAM 角色的操作权限为 *,服务账户拥有 cluster-admin 权限
修复:遵循最小权限原则,为 Pod 使用 IRSA,审计权限
15. 缺少可观测性
症状:没有指标,日志仅输出到 stdout,没有告警
修复:导出指标,使用结构化日志,定义 SLO,配置告警
验证脚本
运行 ./scripts/validate-devops-skill.sh 以检查:
- GitHub Actions 工作流中是否存在已弃用的操作、是否缺少缓存
- Dockerfile 是否遵循安全最佳实践
- Kubernetes 清单是否设置资源限制和安全上下文
- Terraform 是否设置版本约束和安全的默认值
质量检查清单
[ ] All secrets in secret management (not in code)
[ ] Resource limits defined for all containers
[ ] Health checks configured (liveness, readiness)
[ ] Horizontal pod autoscaling enabled
[ ] Security contexts set (non-root, read-only)
[ ] Monitoring and alerting configured
[ ] Rollback strategy documented
[ ] Multi-environment support (dev, staging, prod)
[ ] Concurrency controls in CI pipelines
[ ] Remote state backend for Terraform
[ ] Vulnerability scanning in pipeline
[ ] Version pinning for all dependencies
输出产物
- CI/CD 工作流 - GitHub Actions、GitLab CI 配置
- Terraform 模块 - 可复用的基础设施组件
- Kubernetes 清单 - 部署、服务、配置
- Helm Charts - 打包的应用程序
- Docker 配置 - 优化的多阶段构建
- ArgoCD 应用 - GitOps 部署定义
可用工具
Read、Write、Edit- 配置和清单的文件操作Bash(docker:*)- 构建和管理容器Bash(kubectl:*)- Kubernetes 操作Bash(terraform:*)- 基础设施预配Bash(helm:*)- Helm chart 管理Bash(gh:*)- GitHub CLI 操作