SuperAPI AI 工具集

terraform

部署与运维

查看项目

更新于 10-15 20:32

技能介绍

用途:以基础设施即代码方式创建和管理云资源,让变更可通过 plan 审查,并用远程 state 与可复用模块保持一致性。资料强调 state 中记录的内容即运维事实,需谨慎对待。

主要能力与概念:Resource 为被管理对象(实例、队列、DNS 等);Data source 读取已有资源;Module 封装可复用片段;State 是地址到真实 ID 的映射;Backend 决定 state 存放位置(如 S3+Dynamo、GCS、Terraform Cloud);Provider 对接云或 API(AWS、GCP、Azure、K8s 等)。

必要用法与规则:使用远程 state 加锁,团队中不得共用本地 state;secrets 不进入 git,也不在 CI 日志中以明文输出;任何非临时环境 apply 前必须审查 terraform plan;用 required_version 与 required_providers 约束版本;破坏性变更(force new、delete)需显式确认并准备回滚;每个环境或账号一个 root(或规范使用 workspaces),避免单一巨型 state。建议布局为 infra/modules 与 infra/envs/dev、staging、prod,模块自身不带 backend,由环境 root 配置 backend 并传入变量;统一命名与标签如 project、env、owner、managed-by=terraform。

状态与安全:backend 启用静态加密与最小权限访问,使用锁表或锁 API 防止并发 apply;terraform state mv/rm 仅在备份并理解影响后执行;接管已有资源用 import block 或 terraform import,不要无谓重建生产。模块输入需带类型、校验,必要时 sensitive=true;输出保持最少并标记敏感;模块用 git tag 或 registry 版本化,生产避免浮动 main。环境隔离建议使用独立云账号或项目,值通过 tfvars、CI 变量或密钥存储传入,不在通用模块中硬编码生产 ID。IAM 遵循最小权限,避免长期 access key,CI 优先 OIDC 或角色代入;防火墙默认拒绝;如流水线已有 checkov/tfsec/trivy 可扫描 plan。CI/CD 流程为 fmt → validate → plan(PR)→ apply(main/prod 需审批),-target 仅作应急手段。

限制与未提供信息:资料未给出具体安装命令、版本号、价格或平台支持细节,这些暂未提供。