要管的资源散在几个云和自建机房里,手工在控制台点是不长久的做法。这篇记录 Terraform 的定位、IaC 的工作方式,以及在 Windows 上把命令行环境和编辑器配齐的过程。
Terraform 是干什么的
Terraform 是 HashiCorp 的 IT 基础架构自动化编排工具,用代码来管理维护 IT 资源。它的命令行接口(CLI)提供了一套简单机制,把配置文件部署到任意支持的云上并做版本控制;配置文件里描述的是云资源拓扑的基础结构,例如虚拟机、存储帐户和网络接口。它高度可扩展,新基础架构通过 Provider 接入。官方地址:https://www.terraform.io/。
常见价值可以归成四条:把类似的基础结构部署到阿里云、其他云提供商或本地数据中心,同一套工具管多家云;用模板可重复、可预测地定义和配置资源,减少人为部署错误;基础设施即代码,状态可保存、可跟踪、可共享;按需创建开发和部署环境,降低成本,改动之前还能先评估。
基础设施即代码
IaC 工具让你用配置文件而不是图形界面管理基础架构,资源配置可版本化、可重用、可共享。Terraform 的配置语言是声明式的,描述的是基础设施的最终状态,Provider 会自动计算资源之间的依赖关系,按正确的顺序创建或销毁资源。相比手工管理,它能在多个云平台上跟踪资源变更,配置提交进版本库就能安全协作。
Provider 让 Terraform 通过各平台的 API 交互,HashiCorp 和社区写了一千多个,覆盖 AWS、Azure、GCP、Kubernetes、Helm、GitHub、Splunk、DataDog 上的资源,可在 registry.terraform.io/browse/providers 查找。计算实例、专用网络这类资源单元由 Provider 定义,不同 Provider 的资源可以组合成模块复用。
状态文件是整个流程里最需要留心的部分:部署过程中的资源变更都记在状态里,配置提交进版本库才能多人协作;状态一旦和真实环境不一致,后续的执行计划就会算错。

Windows 下安装
Terraform 用 Go 语言编写,解压后就是一个可执行的二进制程序,配置好环境变量即可使用。先在官网找到 Windows 系统对应的安装包:

按 win+R,输入 sysdm.cpl 回车,打开系统属性:


在环境变量里加上解压目录,新开终端验证:
terraform -version

VSCode 装插件
编辑器用 VSCode,装下面两个插件做 HCL 语法支持和代码补全:

环境变量配置完要重开一个终端窗口才生效,装完提示找不到命令的基本都是这个原因。

















暂无评论内容