什么是Terraform?
HashiCorp Terraform 是一种基础设施即代码工具,可让您在人类可读的配置文件中定义云和本地资源,您可以对这些文件进行版本控制、重用和共享。然后,您可以使用一致的工作流程来配置和管理所有基础设施的整个生命周期。Terraform 可以管理计算、存储和网络资源等低级组件,以及 DNS 条目和 SaaS 功能等高级组件。
Terraform是如何工作的?
Terraform 通过应用程序编程接口 (API) 创建和管理云平台和其他服务上的资源。提供商使 Terraform 能够通过可访问的 API 与几乎任何平台或服务配合使用。
核心 Terraform 工作流程由三个阶段组成:
- 写入:您定义资源,这些资源可能跨多个云提供商和服务。例如,您可以创建一个配置,以在具有安全组和负载均衡器的虚拟私有云 (VPC) 网络中的虚拟机上部署应用程序。
- 计划: Terraform 创建一个执行计划,描述它将根据现有基础设施和您的配置创建、更新或销毁的基础设施。
- 应用:获得批准后,Terraform 将按照正确的顺序执行建议的操作,并尊重任何资源依赖性。例如,如果您更新 VPC 的属性并更改该 VPC 中的虚拟机数量,Terraform 将在扩展虚拟机之前重新创建 VPC。
Terraform 的特点
管理任何基础设施
查找已在 Terraform 注册表中使用的许多平台和服务的提供商。你也可以开发自己的Terraform 插件。Terraform对基础设施采用不可变的方法,降低了升级或修改服务和基础设施的复杂性。
跟踪您的基础设施
Terraform 会生成一个计划并在修改基础设施之前提示你批准。它还在状态文件中跟踪您的真实基础设施,该文件充当你的环境的事实来源。Terraform 使用状态文件来确定对基础设施进行的更改,以便它与你的配置相匹配。
自动更改
Terraform 配置文件是声明性的,这意味着它们描述了基础设施的最终状态。你无需编写分步说明来创建资源,因为 Terraform 会处理底层逻辑。Terraform 构建资源图来确定资源依赖关系,并并行创建或修改非依赖资源。这使得 Terraform 能够有效地配置资源。
标准化配置
Terraform 支持称为模块的可重用配置组件,这些组件定义可配置的基础设施集合,从而节省时间并鼓励最佳实践。您可以使用 Terraform 注册表中的公开可用模块,也可以编写自己的模块。
Terraform 版本
Terraform Open Source
Terraform 开源是一个免费的可下载工具,你可以在命令行上与之交互。它允许你在任何云提供商上配置基础设施并管理配置、插件、基础设施和状态。
为什么选择 Terraform Open Source?
Terraform 开源可让您:
- 采用基础设施即代码并使用通用配置语言来提供数千种不同类型的资源和服务。
- 对您的基础架构进行编码,以便您可以将配置文件签入版本控制系统 (VCS) 中以安全地管理贡献。手动拉取最新版本以执行 Terraform 操作。
- 使用和发布称为模块的公共基础设施模板来实施行业和组织最佳实践,将基础设施分组为逻辑相关的组件,并更快地部署基础设施。
资源
- 适用于流行提供商的入门教程:Amazon Web Services、Azure、Google Cloud Platform、Oracle Cloud Infrastructure和Docker
- 什么是 Terraform?
- 配置语言文档
- CLI 文档
Terraform Cloud
Terraform Cloud 是一款 SaaS 应用程序,它在稳定的远程环境中运行 Terraform 并安全地存储状态和机密。它包括丰富的用户界面,可帮助您更好地了解 Terraform 操作和资源,允许您定义基于角色的访问控制,并提供用于共享模块和提供程序的私有注册表。Terraform Cloud 还与 Terraform CLI 集成,并连接到 GitHub、GitLab 和 Bitbucket 等常见版本控制系统 (VCS)。当您将 Terraform Cloud 工作区连接到 VCS 存储库时,新的提交和更改可以自动触发 Terraform 计划。Terraform Cloud 还提供 API,允许您将其集成到现有工作流程中。
许多 Terraform Cloud 功能对于小型团队来说是免费的;我们为大型组织提供付费计划,并具有额外的协作和治理功能。
为什么选择 Terraform Cloud?
Terraform Cloud 可让您:
- 从本地 CLI 或远程环境中运行 Terraform,通过版本控制系统触发操作,或使用 API 将 Terraform Cloud 集成到现有工作流程中。
- 确保只有经过批准的团队才能使用 Terraform Cloud 工作区、单点登录和基于角色的访问控制来访问、编辑和配置基础设施。
- 远程安全地存储和版本 Terraform 状态,并进行静态加密。版本化状态文件允许您访问状态文件历史记录。
- 在 Terraform Cloud 私有注册表中发布定义批准的基础设施模式的配置模块。例如,模块可以允许用户选择在其上部署其 Java 应用程序的云提供商。这使消费者能够实施您组织的最佳实践,而无需成为基础设施或云专家。
- 使用 Sentinel 嵌入式策略即代码框架实施最佳实践和安全规则。例如,策略可能会限制生产部署的区域。
资源
- 创建 Terraform 云帐户
- Terraform 云文档
- 哨兵文档
- 入门 - Terraform Cloud教程向您展示如何使用 Terraform Cloud 的 VCS 集成来管理基础设施
Terraform Enterprise
Terraform Enterprise 允许您设置 Terraform Cloud 的自托管发行版。它提供可定制的资源限制,非常适合具有严格安全性和合规性要求的组织。
为什么选择 Terraform Enterprise?
Terraform Enterprise 可以让您:
- 在 HashiCorp 的专门支持下设置 Terraform Cloud 的私有实例。
- 满足高级安全性和合规性要求。Terraform Enterprise 支持多种类型的安装,包括气隙和主动/主动架构,并允许专用网络和作业扩展以获得更好的性能。
资源