用途:该技能用于引导用户以 OpenTofu/Terraform 编写 DigitalOcean 基础设施代码。当需要配置 Droplets、VPC、托管数据库、防火墙或其他 DigitalOcean 资源时使用。
主要能力与覆盖范围:
- Provider 设置:声明 digitalocean provider 的源与版本(~> 2.0),并通过 DIGITALOCEAN_TOKEN 环境变量提供认证。
- VPC:定义虚拟私有云,包含名称、区域、IP 范围与描述。
- Droplets:定义计算实例,支持指定区域、规格、镜像、VPC、SSH 密钥、监控、IPv6 与标签;也支持通过 user_data 传入 Cloud-Init 配置,用于安装 Docker、创建 deploy 用户、禁用 root SSH 登录等。
- Reserved IP:定义保留 IP 并将其分配给 Droplet,同时输出 IP 地址。
- 防火墙:定义入站规则(如 22、80、443 端口)与出站规则(TCP、UDP、ICMP),并可为数据库配置防火墙规则,支持基于变量动态添加允许的 IP 白名单。
- 托管数据库:定义 PostgreSQL 集群(引擎 pg、版本 16、私有网络、节点数)与 Redis 集群;输出 database_uri 与 private_uri(标记为敏感),并可配置数据库防火墙规则。
- Spaces 对象存储:定义桶、ACL、CORS 配置,并输出桶的访问端点。
- DNS 记录:定义域名、A 记录与 CNAME 记录。
- SSH 密钥:通过 data 源引用已有密钥,或使用 resource 注册新密钥。
使用方式:技能以 Terraform 代码示例形式呈现,用户可根据示例编写或调整自己的配置文件。示例中引用变量(如 var.project、var.environment、var.region 等),需要用户自行定义。代码示例包含完整的资源声明、动态块与输出。参考资料包括 references/digitalocean-sizes.md(Droplet 与数据库规格)和 references/digitalocean-production-stack.md(包含 VPC、Droplet、防火墙、数据库与输出的完整生产环境配置)。
适用场景:适合需要在 DigitalOcean 上以基础设施即代码方式部署计算、网络、数据库、存储与 DNS 资源的开发或运维场景。
限制:资料未提供该技能的具体安装命令、版本兼容性说明、计费或价格信息、区域与规格的完整可选值列表(仅给出部分示例如 s-1vcpu-1gb、db-s-1vcpu-1gb 等),也未提供错误处理、状态管理或与现有基础设施集成等细节。部分示例中使用了未在片段中定义的变量与资源,实际使用时需自行补全。