mcpField
I
infrastructure-skill-builder

infrastructure-skill-builder

github.com/jackspaceAgent 工作流1652 次安装12 周前更新
代码仓库

关于 infrastructure-skill-builder

此 Claude Code skill 将基础设施文档和运维经验整理为可复用的技能,面向基础设施团队。它提供领域梳理、操作模板及从运维手册和配置文件提取内容的脚本。

主要功能

  1. 01梳理基础设施领域与操作
  2. 02提供运维技能模板
  3. 03从运行手册提取技能
  4. 04从 Docker Compose 提取技能
  5. 05从 Kubernetes 清单提取技能

适用场景

  1. 01为运维团队编写运行手册
  2. 02整理新成员基础设施入门资料
  3. 03记录灾难恢复与故障排查流程

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jackspace/claudeskillz --skill infrastructure-skill-builder

安装后在 Claude Code 中输入/infrastructure-skill-builder确认已加载。

详细介绍

基础设施技能构建器

将基础设施文档转化为强大、可复用的 Claude Code 技能。

概述

基础设施知识通常散落在以下内容中:

  • README 文件
  • 操作手册和 Wiki 页面
  • 配置文件
  • 故障排查指南
  • 团队 Slack/Discord 历史记录
  • 资深工程师的经验模型

此技能可帮助你系统地将这些知识整理为 Claude Code 技能,用于:

  • 加快入职速度
  • 规范运维
  • 灾难恢复
  • 知识留存
  • 团队扩展

适用场景

在以下情况下使用此技能:

  • 记录复杂的基础设施设置
  • 为运维团队创建操作手册
  • 帮助新团队成员熟悉基础设施
  • 在团队变动前留存专家知识
  • 规范基础设施运维
  • 构建组织级基础设施库
  • 从手动运维迁移到自动化运维

技能提取流程

第 1 步:识别基础设施领域

常见领域:

  • 容器编排:Docker、Kubernetes、Proxmox LXC
  • 云平台:AWS、GCP、Azure、DigitalOcean
  • 数据库:PostgreSQL、MongoDB、Redis、MySQL
  • Web 服务器:Nginx、Apache、Caddy、Traefik
  • 监控:Prometheus、Grafana、ELK Stack
  • CI/CD:Jenkins、GitLab CI、GitHub Actions
  • 网络:VPN、负载均衡器、DNS、防火墙
  • 存储:S3、MinIO、NFS、Ceph
  • 安全:身份验证、SSL/TLS、防火墙
第 2 步:提取核心运维内容

针对每个领域,记录:

  1. 设置/配置资源:如何创建新实例
  2. 配置:如何针对不同用例进行配置
  3. 运维:日常管理任务
  4. 故障排查:常见问题及解决方法
  5. 扩缩容:如何扩容或缩容
  6. 备份/恢复:灾难恢复流程
  7. 监控:健康检查和告警
  8. 安全:安全最佳实践

基础设施技能模板

---
name: [infrastructure-component]-manager
description: Expert guidance for [component] management, provisioning, troubleshooting, and operations
license: MIT
tags: [infrastructure, [component], operations, troubleshooting]
---

# [Component] Manager

Expert knowledge for managing [component] infrastructure.

## Authentication & Access

### Access Methods
```bash
# How to access the infrastructure component
ssh user@host
# or
kubectl config use-context cluster-name
凭据与配置
  • 凭据的存储位置
  • 如何配置访问权限
  • 常见身份验证问题

架构概览

组件拓扑
  • 组件的组织方式
  • 网络拓扑
  • 资源分配
  • 冗余设置
关键资源
  • 资源 1:用途和规格
  • 资源 2:用途和规格
  • 资源 3:用途和规格

常见运维操作

操作 1:[例如,创建新实例]
# Step-by-step commands
command1 --flags
command2 --flags

# Verification
verify-command
操作 2:[例如,更新配置]
# Commands and explanations
操作 3:[例如,扩展资源]
# Commands and explanations

监控与健康检查

检查系统状态
# Health check commands
status-command

# Expected output
# What healthy output looks like
常见指标
  • 指标 1:含义及正常范围
  • 指标 2:含义及正常范围
  • 指标 3:含义及正常范围

故障排查

问题 1:[常见问题]

症状:观察到的现象 原因:问题发生的原因 修复:分步解决方法

# Fix commands
问题 2:[另一个问题]

症状: 原因: 修复:

# Fix commands

备份与恢复

备份流程
# How to backup
backup-command

# Verification
verify-backup
恢复流程
# How to restore
restore-command

# Verification
verify-restore

安全最佳实践

  • 安全实践 1
  • 安全实践 2
  • 安全实践 3

快速参考

任务命令
任务 1command1
任务 2command2
任务 3command3

其他资源

  • 官方文档链接
  • 相关技能
  • 外部参考资料

## Real-World Example: Proxmox Skill

Based on the proxmox-auth skill in this repository:

### Extracted Knowledge

**From**: Proxmox VE cluster documentation + operational experience

**Structured as**:
1. **Authentication**: SSH access patterns, node IPs
2. **Architecture**: Cluster topology (2 nodes, resources)
3. **Operations**: Container/VM management commands
4. **Troubleshooting**: Common errors and fixes
5. **Networking**: Bridge configuration, IP management
6. **GPU Passthrough**: Special container configurations

**Result**: Comprehensive skill covering:
- Quick access to any node
- Container lifecycle management
- GPU-accelerated containers
- Network troubleshooting
- Backup procedures
- Common gotchas and solutions

## Extraction Scripts

### Extract from Runbooks

```bash
#!/bin/bash
# extract-from-runbook.sh - Convert runbook to skill

RUNBOOK_FILE="$1"
SKILL_NAME="$2"

if [ -z "$RUNBOOK_FILE" ] || [ -z "$SKILL_NAME" ]; then
    echo "Usage: $0 <runbook.md> <skill-name>"
    exit 1
fi

SKILL_DIR="skills/$SKILL_NAME"
mkdir -p "$SKILL_DIR"

# Extract sections from runbook
cat > "$SKILL_DIR/SKILL.md" << EOF
---
name: $SKILL_NAME
description: $(head -5 "$RUNBOOK_FILE" | grep -v "^#" | head -1 | xargs)
license: MIT
extracted-from: $RUNBOOK_FILE
---

# ${SKILL_NAME^}

$(cat "$RUNBOOK_FILE")

---

**Note**: This skill was auto-extracted from runbook documentation.
Review and refine before use.
EOF

echo "✓ Created skill: $SKILL_DIR/SKILL.md"
echo "Review and edit to add:"
echo "  - Metadata and tags"
echo "  - Troubleshooting section"
echo "  - Quick reference"
echo "  - Examples"
从 Docker Compose 中提取
#!/bin/bash
# docker-compose-to-skill.sh - Extract skill from docker-compose.yaml

COMPOSE_FILE="${1:-docker-compose.yaml}"
PROJECT_NAME=$(basename $(pwd))

SKILL_DIR="skills/docker-$PROJECT_NAME"
mkdir -p "$SKILL_DIR"

# Extract services
SERVICES=$(yq eval '.services | keys | .[]' "$COMPOSE_FILE")

cat > "$SKILL_DIR/SKILL.md" << EOF
---
name: docker-$PROJECT_NAME
description: Docker Compose configuration and management for $PROJECT_NAME
license: MIT
---

# Docker $PROJECT_NAME

Manage Docker Compose stack for $PROJECT_NAME.

## Services

$(yq eval '.services | to_entries | .[] | "### " + .key + "\n" + (.value.image // "custom") + "\n"' "$COMPOSE_FILE")

## Quick Start

\`\`\`bash
# Start all services
docker-compose up -d

# Check status
docker-compose ps

# View logs
docker-compose logs -f

# Stop all services
docker-compose down
\`\`\`

## Service Details

### Ports

$(yq eval '.services | to_entries | .[] | select(.value.ports) | "- **" + .key + "**: " + (.value.ports | join(", "))' "$COMPOSE_FILE")

### Volumes

$(yq eval '.services | to_entries | .[] | select(.value.volumes) | "- **" + .key + "**: " + (.value.volumes | join(", "))' "$COMPOSE_FILE")

## Configuration

See \`$COMPOSE_FILE\` for full configuration.

## Common Operations

### Restart Service

\`\`\`bash
docker-compose restart SERVICE_NAME
\`\`\`

### Update Service

\`\`\`bash
docker-compose pull SERVICE_NAME
docker-compose up -d SERVICE_NAME
\`\`\`

### View Service Logs

\`\`\`bash
docker-compose logs -f SERVICE_NAME
\`\`\`

## Troubleshooting

### Service Won't Start

1. Check logs: \`docker-compose logs SERVICE_NAME\`
2. Verify ports not in use: \`netstat -tulpn | grep PORT\`
3. Check disk space: \`df -h\`

### Network Issues

\`\`\`bash
# Recreate network
docker-compose down
docker network prune
docker-compose up -d
\`\`\`
EOF

echo "✓ Created skill from docker-compose.yaml"
从 Kubernetes 清单中提取
#!/bin/bash
# k8s-to-skill.sh - Extract skill from Kubernetes manifests

K8S_DIR="${1:-.}"
APP_NAME="${2:-$(basename $(pwd))}"

SKILL_DIR="skills/k8s-$APP_NAME"
mkdir -p "$SKILL_DIR"

cat > "$SKILL_DIR/SKILL.md" << EOF
---
name: k8s-$APP_NAME
description: Kubernetes deployment and management for $APP_NAME
license: MIT
---

# Kubernetes $APP_NAME

Manage Kubernetes resources for $APP_NAME.

## Resources

$(find "$K8S_DIR" -name "*.yaml" -o -name "*.yml" | while read file; do
    KIND=$(yq eval '.kind' "$file" 2>/dev/null)
    NAME=$(yq eval '.metadata.name' "$file" 2>/dev/null)
    echo "- **$KIND**: $NAME ($(basename $file))"
done)

## Deployment

### Apply All Resources

\`\`\`bash
kubectl apply -f $K8S_DIR/
\`\`\`

### Check Status

\`\`\`bash
# Pods
kubectl get pods -l app=$APP_NAME

# Services
kubectl get svc -l app=$APP_NAME

# Deployments
kubectl get deploy -l app=$APP_NAME
\`\`\`

## Common Operations

### Scale Deployment

\`\`\`bash
kubectl scale deployment $APP_NAME --replicas=3
\`\`\`

### Update Image

\`\`\`bash
kubectl set image deployment/$APP_NAME container=new-image:tag
\`\`\`

### View Logs

\`\`\`bash
kubectl logs -f deployment/$APP_NAME
\`\`\`

### Port Forward

\`\`\`bash
kubectl port-forward svc/$APP_NAME 8080:80
\`\`\`

## Troubleshooting

### Pod Not Starting

\`\`\`bash
# Check pod events
kubectl describe pod POD_NAME

# Check logs
kubectl logs POD_NAME

# Previous instance logs
kubectl logs POD_NAME --previous
\`\`\`

### Service Not Reachable

\`\`\`bash
# Check endpoints
kubectl get endpoints $APP_NAME

# Check service
kubectl describe svc $APP_NAME

# Test from another pod
kubectl run -it --rm debug --image=busybox --restart=Never -- wget -O- http://$APP_NAME
\`\`\`

## Quick Reference

| Task | Command |
|------|---------|
| Apply | \`kubectl apply -f $K8S_DIR/\` |
| Status | \`kubectl get all -l app=$APP_NAME\` |
| Logs | \`kubectl logs -f deployment/$APP_NAME\` |
| Scale | \`kubectl scale deployment $APP_NAME --replicas=N\` |
| Delete | \`kubectl delete -f $K8S_DIR/\` |
EOF

echo "✓ Created Kubernetes skill"

要记录的基础设施模式

模式 1:SSH 访问矩阵
## SSH Access

| Host | IP | Purpose | Access |
|------|--------|---------|--------|
| node1 | 192.168.1.10 | Primary | `ssh node1` |
| node2 | 192.168.1.11 | Secondary | `ssh node2` |
| bastion | 203.0.113.5 | Jump host | `ssh -J bastion node1` |
模式 2:服务端口映射
## Service Ports

| Service | Internal | External | Protocol |
|---------|----------|----------|----------|
| Web | 8080 | 80 | HTTP |
| API | 3000 | 443 | HTTPS |
| DB | 5432 | - | TCP |
模式 3:配置文件
## Configuration Locations

### Application Config
- Path: `/etc/app/config.yaml`
- Format: YAML
- Requires restart: Yes

### Database Config
- Path: `/var/lib/postgres/postgresql.conf`
- Format: INI
- Requires restart: Yes
模式 4:命令工作流
## Deployment Workflow

1. **Backup current state**
   ```bash
   ./backup.sh
  1. 拉取最新代码

    git pull origin main
    
  2. 构建应用程序

    docker build -t app:latest .
    
  3. 部署

    docker-compose up -d
    
  4. 验证

    curl http://localhost/health
    

## Best Practices

### ✅ DO

1. **Document assumptions** - What's required before operations
2. **Include verification** - How to verify each operation succeeded
3. **Add troubleshooting** - Common issues and fixes
4. **Show outputs** - Expected command outputs
5. **Link resources** - Related documentation and skills
6. **Version information** - Software versions, configurations
7. **Security notes** - Security implications of operations
8. **Update regularly** - Keep skills current with infrastructure

### ❌ DON'T

1. **Don't hardcode secrets** - Use placeholders or env vars
2. **Don't skip context** - Explain why, not just how
3. **Don't assume knowledge** - Explain terminology
4. **Don't omit edge cases** - Document special scenarios
5. **Don't forget cleanup** - Include teardown procedures
6. **Don't ignore dependencies** - Document prerequisites
7. **Don't skip testing** - Verify all commands work
8. **Don't leave TODO** - Complete all sections

## Quality Checklist

- [ ] Clear component description
- [ ] Authentication/access documented
- [ ] Architecture overview provided
- [ ] Common operations with examples
- [ ] Troubleshooting section complete
- [ ] Health checks documented
- [ ] Backup/recovery procedures
- [ ] Security considerations noted
- [ ] Quick reference table
- [ ] All commands tested
- [ ] No hardcoded secrets
- [ ] Links to resources

## Quick Start Workflow

```bash
# 1. Identify infrastructure component
COMPONENT="nginx-reverse-proxy"

# 2. Gather documentation
# - Collect README files
# - Export wiki pages
# - Capture team knowledge
# - Document current setup

# 3. Create skill structure
mkdir -p skills/$COMPONENT

# 4. Fill in template
# Use the Infrastructure Skill Template above

# 5. Test all commands
# Verify every command in skill works

# 6. Review and refine
# Have team review for completeness

# 7. Commit to repository
git add skills/$COMPONENT
git commit -m "docs: Add $COMPONENT infrastructure skill"

版本:1.0.0 作者:从 proxmox-auth 技能模式采集 最后更新:2025-11-18 许可证:MIT 核心原则:将经验知识转化为结构化、可搜索、可执行的技能。

本仓库中的示例

  • proxmox-auth:Proxmox VE 集群管理
  • docker-*:基于 Docker 的基础设施
  • cloudflare-*:Cloudflare 基础设施服务

立即将你的基础设施文档转化为技能!🏗️

评论

支持 Markdown