首页 > 其他分享 >Terraform - 初解Terraform - 语法

Terraform - 初解Terraform - 语法

时间:2024-08-22 23:27:45浏览次数:12  
标签:定义 数据源 Provider 语法 Terraform 初解 provider 资源

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

相关文章

  • Terraform - 初解Terraform - 厂商
    云厂商资源1.配置云厂商访问控制:人员访问权限、API访问权限、秘钥等2.配置云厂商对应的provider3.定义云厂商资源4.申请云厂商资源创建配置文件对所有资源的代码描述都需要定义配置文件中,用于Terraform加载和解析,建议分类创建结构化的配置文件,例如version.tf:required_pro......
  • Terraform - 初解Terraform - 命令
    调试terraformfmt格式化当前目录的tf文件内容格式,并列出已进行格式化的文件列表-diff选项,显示格式更改的差异-recursive选项,在所有子目录递归执行terraformvalidate验证配置的语法有效性,检查和定位错误出现的详细位置和原因-json选项,以json格式显示结果默认在当前目录......
  • Terraform - 初解Terraform - 安装
    开发环境配置Note:安装环境为windows系统64位笔记本电脑1.安装适用于Windows的Terraform:https://developer.hashicorp.com/terraform/install2.下载Terraform:https://releases.hashicorp.com/terraform/1.9.4/terraform_1.9.4_windows_amd64.zip3.从下载中,将可执行文件......
  • Terraform - 初解Terraform - 简介
    前言云计算主要提供计算服务,例如服务器、存储、数据库、网络等等;对于云服务,通常只需使用多少支付多少,从而帮助降低运营成本,使基础设施更有效地运行,并能根据业务需求的变化调整对服务的使用。公有云:多租户面向个人或企业由第三方云服务商托管和运营。私有云:专供一个企业......
  • Terraform中的for_each和count
    通过Terraform创建云主机时,在某些业务场景下,一个机器需要挂载多个云盘,一般云厂商都是单独创建云主机和云硬盘然后通过attachment的资源去挂载,因此我们的模板大致如下:resource"tencentcloud_instance""basic"{instance_name=var.instance_namepassword="xxx"}......
  • 【整理快速通道】python语法import速查
    这段文字是特意发送在除了CSDN以外的其他网站的,如果这段文字出现在CSDN里面,则说明该账号为抄袭账号,关键字索引:抄袭千思的文章目录正文文件夹结构模块调用包内模块1.import2.from...import...3.import...as4.from...import*(不推荐)同级两个模块导入from...import动态导入try.......
  • Markdown语法学习
    Markdown语法学习标题一级标题二级标题三级标题四级标题……字体HelloworldHelloworldHelloworldHelloworld引用Helloworld引用分割线Helloworld图片超链接网页列表ABC注意在输入(''*.'或'-'后接'')AC表格名字性别生日......
  • 六:《Python基础语法汇总》— 函数
    一:函数入门​函数:就是可以重复使用的具有一定功能的代码。除了一些Python内置的函数以外,函数也可以自己定义​自定义函数:通过def定义的函数自定义函数格式:def函数名(参数):函数要去实现的功能代码#调用函数函数名(参数)​命名函数名和参数名时要符合变......
  • MySQL 源码|51 - 语法解析:高级表达式
    目录文档:MySQL源码|源码剖析文档目录源码位置(版本=MySQL8.0.37):sql/sql_yacc.yy前置文档:MySQL源码|50-语法解析:基础表达式(simple_expr)在梳理了基础表达式simple_expr之后,我们就可以梳理更高级的表达式了。高级表达式的相关关系如下图所示:其中绿色节点为本章节梳......
  • MySQL 源码|50 - 语法解析:基础表达式(simple_expr)
    目录文档:MySQL源码|源码剖析文档目录源码位置(版本=MySQL8.0.37):sql/sql_yacc.yy前置文档:MySQL源码|37-语法解析:聚集函数MySQL源码|38-语法解析:窗口函数MySQL源码|43-语法解析:关键字函数MySQL源码|44-语法解析:非关键字函数MySQL源码|45-语法解析:通用函数MySQL......