Terraform

什么是 Terraform?

Terraform 是 HashiCorp 推出的基础设施即代码(infrastructure-as-code)工具。您在配置文件中描述服务器、网络和云服务,Terraform 会创建或修改实际的基础设施以与之匹配。

与工程师沟通 知识库
数据中心机房中设有架空地板的服务器机柜

它是什么

没有这类工具时,基础设施是通过在网页控制台里逐项点击来搭建的,事后没人能确切说出设置过什么。使用 Terraform,工程师编写文件,声明应该存在什么:两台指定规格的虚拟机、一个专用网络、一条防火墙规则、一个存储桶。

Terraform 通过提供程序(provider)与各个平台通信,这是一种了解该平台 API 的插件。已有适用于 AWS、Microsoft Azure、Google Cloud、DNS 服务等众多平台的提供程序,以及由社区维护的 Proxmox VE 提供程序。一份配置可以涵盖其中的多个平台。

计划、应用与状态

  • 计划(Plan):Terraform 将文件与现有内容进行比较,列出它将要创建、修改或删除的内容。此时尚未改动任何东西。
  • 应用(Apply):有人阅读了计划之后,Terraform 只执行这些变更。
  • 状态(State):Terraform 保存一个状态文件,记录哪些实际资源对应配置的哪一部分。它可能包含密码和其他敏感值,因此应存放在受保护的共享位置,而不是某一台笔记本电脑上。

企业能从中获得什么

  • 基础设施的记录:保存在 Git 中的这些文件,显示了现有的内容以及每项变更的原因。
  • 变更当天没有意外:在删除任何内容之前,计划会精确显示将发生什么。
  • 可重复的环境:测试环境或第二个站点可以用与生产环境相同的文件构建。

Terraform 与 Ansible

Terraform 创建基础设施:机器、网络和云服务。Ansible 则在这些机器建好之后,配置其上运行的内容。许多团队两者都用。

许可证与 OpenTofu

2023 年,HashiCorp 把 Terraform 的许可证从开源许可证改为 Business Source License,限制在与 HashiCorp 竞争的产品中使用。作为回应,OpenTofu 作为开源分支启动,现在是 Linux Foundation 的项目。它读取相同的配置语言。IBM 于 2025 年完成了对 HashiCorp 的收购。

KawaConnect 如何使用基础设施即代码

我们把基础设施以代码形式保存在版本控制中,用 GitOps 运行 Kubernetes,并搭建 Proxmox VE 集群和 Microsoft Azure 环境。用文件描述这些基础设施,让搭建过程可以重复,每项变更也都可追溯。

相关服务

云基础设施

Azure、混合环境、迁移和恢复规划。

Proxmox 咨询

集群、高可用性,以及从 VMware 迁移。

Kubernetes 咨询

通过 Git 和 GitOps 变更的集群。

了解更多

基础设施是靠点击搭建的?

请告诉我们您的服务器和云服务运行在哪里。我们会说明用文件来描述它们需要做什么,以及这会给您带来什么变化。

开始沟通