IaC 概述
基础设施即代码 (IaC) 工具允许您使用配置文件而不是通过图形用户界面来管理基础设施。IaC 允许您通过定义可版本化、重用和共享的资源配置,以安全、一致和可重复的方式构建、更改和管理您的基础设施。
Terraform 概述
HashiCorp Terraform 是一种基础设施即代码工具,可让在人类可读的配置文件中定义云和本地资源,可以对这些文件进行版本控制、重用和共享。可以使用一致的工作流程来配置和管理所有基础设施的整个生命周期。Terraform 可以管理计算、存储和网络资源等低级组件,以及 DNS 条目和 SaaS 功能等高级组件。
Terraform 工作逻辑
Terraform 通过应用程序编程接口 (API) 创建和管理云平台和其他服务上的资源。 Providers 使 Terraform 能够通过可访问的 API 与几乎任何平台或服务配合使用。
Terraform 核心工作流
Terraform 核心工作流程由三个阶段组成:
Write: 定义资源,这些资源可能跨多个云提供商和服务。例如,您可以创建一个配置,以在具有安全组和负载均衡器的虚拟私有云 (VPC) 网络中的虚拟机上部署应用程序。
Plan: Terraform 创建一个执行计划,描述它将根据现有基础设施和配置创建、更新或销毁的基础设施。
Apply:获得批准后,Terraform 将按照正确的顺序执行建议的操作,并尊重任何资源依赖性。例如,如果您更新 VPC 的属性并更改该 VPC 中的虚拟机数量,Terraform 将在扩展虚拟机之前重新创建 VPC。
Terraform 优势
1. Terraform 可以管理多个云平台上的基础设施。
2. 人类可读的配置语言可以快速编写基础架构代码。
3. 可以跟踪Terraform整个部署过程中的资源变化的状态。
4. 可以将配置提交给版本控制,以便在基础架构上安全地进行协作。
Terraform 标准化部署工作流程
Providers 将基础设施的各个单元(例如计算实例或专用网络)定义为资源。可以将来自不同提供商的资源组合成可重用的 Terraform 配置(称为模块),并使用一致的语言和工作流程来管理它们。
Terraform 的配置语言是声明性的,这意味着它描述了基础设施所需的最终状态,这与需要分步指令来执行任务的过程编程语言形成鲜明对比。erraform 提供程序会自动计算资源之间的依赖关系,以按照正确的顺序创建或销毁它们。
Terraform 部署基础设施流程
1. Scope: 确定项目的基础设施。
2. Author: 为您的基础设施编写配置。
3. Initialize: 安装 Terraform 管理基础设施所需的插件。
4. Plan: 预览 Terraform 将做出的更改以匹配您的配置。
5. Apply:进行计划的更改。
参考文档
官方文档:https://developer.hashicorp.com/terraform/intro
providers列表:https://registry.terraform.io/browse/providers