Terraform配置文件
- 配置文件支持两种格式HCL(HashiCorp Configuration Language)、JSON
- HCL格式后缀名以
.tf
结尾,JSON格式后缀名以.tf.json
结尾 - HCL格式更加人性化,支持“//”注释,并且是大多数Terraform文件通常推荐的格式
- JSON格式适用于机器创建,修改和更新,也可以由Terraform操作员完成
- Terraform配置是声明式的,对其他资源和变量的引用不依赖于它们定义的顺序
Provider 插件
- Terraform通过provider管理基础设施,使用provider与云供应商API 进行交互
- 每个Provider都包含相关的资源和数据源
- providers : https://registry.terraform.io/providers
- provider分类:官方版、认证版、社区版、留档版(不维护)
声明Provider
- 每个 Terraform 模块必须声明需要哪些Provider,以便 Terraform可以安装和使用
- 要求在 required_providers 语句块中声明对应Provider的源地址、版本
配置Provider
- 关键字 provider 自定义Provider名称
- 配置对应参数,例如 access_key、secret_key、region等
同一个Provider定义多个配置
- 在配置provider通过alias可以为同一个Provider定义多个配置
- 在资源中通过 provider关键字 引用
. - 可以支持一个云厂商的多个区域
- 需要有一个默认的provider存在
Resource 资源
在Terraform中,一个具体的资源或者服务称之为一个resource,
每个特定的resource包含了若干可用于描述对应资源或者服务的属性字段,通过这些字段来定义一个完整的资源或者服务。
- 通过 resource 关键字来定义一个资源块
- 每个资源块描述一个或多个基础对象、计算实例或更高级别的组件,例如网络、DNS 记录
- 资源名称必须以字母或下划线开头,并且只能包含字母、数字、下划线和破折号
- 资源参数引用:
. .
定义一台ECS实例,需要的参数:可用区、安全组、实例规格、系统盘类型、名称描述、镜像、实例名称、带宽、交换机、付费类型、账户密码等等
定义一条DNS记录,需要的参数:域名、主机记录、类型、值(IP)等
DataSource 数据源
在Terraform中,Data Source 提供的就是一个查询资源的功能,每个data source实现对一个资源的动态查询,Data Souce的结果可以认为是动态变量,只有在运行时才能知道变量的值。
- 提供资源的数据,可以通过参数过滤数据并供其他模块引用
- 使用data块声明
- 在data块中定义需要的属性
- 如果数据源信息较多,建议单独放置在一个tf文件中
定义一个系统镜像数据源,需要的参数:名称、架构、类型、状态等
标签:定义,数据源,Provider,语法,Terraform,初解,provider,资源 From: https://www.cnblogs.com/anliven/p/18374958