![image](https://img2022.cnblogs.com/blog/2222036/202204/2222036-20220402155502615-1563973416.png)
1:IaC基础设施即代码
通过代码的方式来管理,定义,部署,更新和销毁基础设施。
1:强大的社区:
450000+次提交
4000多模块
1000多家供应商
2:可以管理任何基础设施
3:对基础设施版本管理并跟踪
4:无需考虑底层逻辑,仅需声明配置
5:多云架构基础设施部署
6:创建可重用的基础架构
7:高效的基础架构扩展和部署
Terraform是一个开源的基础设施即代码工具,它提供一致的CLI操作流来管理数百个云服务,Terraform通过编写声明式配置文件来操作API接口
write plan apply
HashiCorp Terraform 是一种基础架构即代码工具,可在可读的配置文件中定义云和本地的资源,可对其进行版本控制,重用和共享,还可以使用一致的工作流程在整个生命周期内配置和管理所有基础架构,Terrafrom可以管理,以及DNS条目和SaaS功能等高级组件,计算,存储,和网络资源等低级组件
Terraform通过其他应用程序编程接口(API)在云平台和其他服务上创建和管理资源,Provider使Terraform能够通过可访问的API与几乎任何平台或服务一起工作
![image](https://img2022.cnblogs.com/blog/2222036/202204/2222036-20220402103142901-522085181.png)
# 解析
Provider:是每个云提供的一个插件,它的作用就是去操作自己云的API
![image](https://img2022.cnblogs.com/blog/2222036/202204/2222036-20220402103411442-497056377.png)
write阶段,即定义自己的所需的资源,这些资源可以跨多个云提供商和服务。
例如:创建一个具有安全组和负载均衡器的ECS,并部署应用
![image](https://img2022.cnblogs.com/blog/2222036/202204/2222036-20220402103911285-1676712901.png)
plan阶段,Terraform创建一个执行计划,将根据配置文件创建,更新或销毁基础架构,
例如:可以查看当前基础设施与期望状态对比,便于对TF配置进行预览
![image](https://img2022.cnblogs.com/blog/2222036/202204/2222036-20220402205542838-1142186377.png)
apply阶段:在批准后Terraform会按照资源依赖关系顺序执行。
例如:更新VPC的属性,并更改VPC中虚拟机的数量,Terraform将在扩展虚拟机之前重新创建VPC
![image](https://img2022.cnblogs.com/blog/2222036/202204/2222036-20220402154349388-1476929850.png)