Terraform 命令速查
共 33 条 Terraform 常用命令,覆盖基本工作流(init / plan / apply / destroy)、 状态管理、变量与输出、工作区与调试五组场景。支持搜索与分类筛选,点击命令即可复制。
基本工作流
标准流程:init → plan → apply → destroy。
| 命令 | 说明 |
|---|---|
| 初始化,下载 provider 与模块 | |
| 升级 provider 与模块到允许的新版本 | |
| 格式化 .tf 文件(-recursive 递归子目录) | |
| 校验语法与配置是否合法 | |
| 预览将要创建 / 修改 / 删除的资源 | |
| 把执行计划保存到文件 | |
| 执行变更(会再次确认) | |
| 按保存的计划执行,结果可预期 | |
| 跳过确认(脚本 / CI 用,谨慎) | |
| 销毁本配置管理的全部资源(危险) | |
| 查看当前 state 或指定 plan 文件 |
状态管理
state 记录已创建的资源,慎改。
| 命令 | 说明 |
|---|---|
| 列出 state 中的全部资源 | |
| 查看某资源的详细属性 | |
| 从 state 移除(不销毁实际资源) | |
| 把已存在的资源导入 state | |
| 用真实资源状态刷新 state | |
| 标记资源需重建(apply 时替换) | |
| 取消重建标记 |
变量与输出
传参与读取输出。
| 命令 | 说明 |
|---|---|
| 命令行传入单个变量 | |
| 用 tfvars 文件批量传参 | |
| 查看本配置的输出值 | |
| 以 JSON 输出,便于脚本读取 | |
| 导出远程 state 到本地 |
工作区
同一份配置管理多套环境。
| 命令 | 说明 |
|---|---|
| 列出所有工作区 | |
| 新建并切换到 dev 工作区 | |
| 切换到 prod 工作区 | |
| 显示当前工作区 | |
| 删除工作区(需先无资源) |
调试与技巧
排查问题与常用开关。
| 命令 | 说明 |
|---|---|
| 打开详细日志排查问题 | |
| 用退出码区分「有变更(2) / 无变更(0)」 | |
| 列出配置依赖的 provider | |
| 导出资源依赖图 | |
| 交互式测试表达式与函数 |
使用说明
Terraform 常用命令速查:基本工作流、状态管理、变量与输出、工作区与调试;支持搜索与分类筛选,点击命令即可复制。
- 按用途点分类:基本工作流、状态管理、变量与输出、工作区、调试与技巧。
- 点「命令」列复制,替换资源地址(如 aws_instance.web)与变量值后执行。
- 标准流程:terraform init → plan 预览 → apply 执行;确认无误再销毁用 destroy。
- 脚本 / CI 中若要跳过确认,用 apply -auto-approve,并先把 plan 保存成文件再审。
常见问题
- plan 和 apply 之间有什么联系?
- plan 只预览将要发生的变化,不真正改动;apply 才会执行。若要保证执行的正是预览过的计划,用 terraform plan -out=tfplan 保存,再 terraform apply tfplan。
- state 文件能随便删吗?
- 不能。state 记录资源与真实环境的映射,删了会导致 Terraform 认为资源不存在并可能重复创建。应使用远程后端(如 S3 / COS)集中保存并开启锁定。
- 怎么让已存在的资源纳入管理?
- 用 terraform import <资源地址> <资源ID> 把它写进 state,然后在 .tf 里补上对应配置,使 plan 无差异。导入前该资源不能已被 state 记录。
- workspace 适合隔离生产环境吗?
- 适合中小规模的多环境隔离。但生产环境更推荐「独立目录 + 独立 state + 独立变量文件」,避免一次切换工作区误操作到生产。