Terraform 语言

这是terrform配置语言的文档。适用于Terraform CLI、Terraform Cloud和Terraform Enterprise的用户。terrform的语言是其主要的用户界面。用Terraform语言编写的配置文件告诉Terraform要安装什么插件、要创建什么基础设施以及要获取什么数据。terrform语言还允许定义资源之间的依赖关系,并从单个配置块创建多个类似的资源。

概述

terrform语言的主要目的是声明资源,这些资源表示基础设施对象。所有其他语言特性的存在只是为了使资源的定义更加灵活和方便。

Terraform配置是一个用Terraform语言编写的完整文档,它告诉Terraform如何管理给定的基础设施集合。一个配置可以由多个文件和目录组成。

terrform语言的语法只包含几个基本元素:

resource "aws_vpc" "main" {cidr_block = var.base_cidr_block
}<BLOCK TYPE> "<BLOCK LABEL>" "<BLOCK LABEL>" {# Block body<IDENTIFIER> = <EXPRESSION> # Argument
}
  • Blocks 是其他内容的容器,通常表示某种对象的配置,如资源。Blocks有一个块类型,可以有零个或多个标签,并且有一个包含任意数量参数和嵌套块的主体。Terraform的大多数特性都由配置文件中的顶级Blocks控制。
  • 参数为名称赋值。它们出现在Blocks内。
  • 表达式表示一个值,可以按字面意思表示,也可以通过引用和组合其他值表示。它们作为参数的值出现,或在其他表达式中出现。

terrform语言是声明性的,描述的是预期的目标,而不是达到该目标的步骤。blocks的顺序和它们被组织到的文件通常不重要;Terraform在确定操作顺序时只考虑资源之间的隐式和显式关系。

Example

下面的示例描述了Amazon Web Services的一个简单网络拓扑结构,只是为了让您了解terrraform语言的整体结构和语法。可以使用其他提供者定义的资源类型为其他虚拟网络服务创建类似的配置,并且实际的网络配置通常包含这里没有显示的其他元素,

terraform {required_providers {aws = {source  = "hashicorp/aws"version = "~> 1.0.4"}}
}variable "aws_region" {}variable "base_cidr_block" {description = "A /16 CIDR range definition, such as 10.1.0.0/16, that the VPC will use"default = "10.1.0.0/16"
}variable "availability_zones" {description = "A list of availability zones in which to create subnets"type = list(string)
}provider "aws" {region = var.aws_region
}resource "aws_vpc" "main" {# Referencing the base_cidr_block variable allows the network address# to be changed without modifying the configuration.cidr_block = var.base_cidr_block
}resource "aws_subnet" "az" {# Create one subnet for each given availability zone.count = length(var.availability_zones)# For each subnet, use one of the specified availability zones.availability_zone = var.availability_zones[count.index]# By referencing the aws_vpc.main object, Terraform knows that the subnet# must be created only after the VPC is created.vpc_id = aws_vpc.main.id# Built-in functions and operators can be used for simple transformations of# values, such as computing a subnet address. Here we create a /20 prefix for# each subnet, using consecutive addresses for each availability zone,# such as 10.1.16.0/20 .cidr_block = cidrsubnet(aws_vpc.main.cidr_block, 4, count.index+1)
}

Terraform基本介绍(1)相关推荐

  1. terraform基本介绍

    Terraform是一个IAC(Infrustracture as Code)工具,可以通过编写易读代码来操作云和物理机上的各种资源.在资源生命周期中,可以通过统一的工作流来对他们进行统一管理.Ter ...

  2. Terraform快速编排OpenStack

    Terraform介绍 Terraform is a tool for building, changing, and versioning infrastructure safely and eff ...

  3. 【翻译】介绍一下Opta。Rails上的Terraform

    作者:Ankur Dahiya 2022年2月18日 RunX公司安库尔-达希亚的特邀文章 今天的工程师们在一个永久的好消息和坏消息的二元对立中工作.一方面,他们所掌握的工具.基础设施和能力给了他们十 ...

  4. Terraform 是什么?

    Terraform 是什么? Terraform 是什么? Terraform 是一种安全有效地构建.更改和版本控制基础设施的工具(基础架构自动化的编排工具).它的目标是 "Write, P ...

  5. 基础设施即代码:Terraform和AWS无服务器

    基础设施即代码 基础设施即代码(IaC)是一种通过机器可读的定义文件管理设备和服务器的方法.从根本上说,你要写下你希望基础设施是什么样子,以及应该在该基础设施上运行什么代码.然后,按下一个按钮,说&q ...

  6. 【译】微软出品HashiCorp Terraform 和 Vault 系列视频

    自从宣布与 HashiCorp 的多年合作以来, 微软已经取得了长足的进步, 以确保 HashiCorp 工具在 Azure 的公共云产品上作为头等舱的公民运作.通过 Microsoft 和 Hash ...

  7. 什么是Terraform?

    Terraform简介 欢迎访问Terraform介绍指南!本指南是开始学习Terraform的最佳之处.其包含Terraform是什么,解决什么问题以及与当前已有的软件对比,并且包含使用Terraf ...

  8. 写在前面-Terraform

    这是一个有关于Terraform技术的文章. 为什么写这个? 随着技术的发展,越来越多的企业提供云服务,例如亚马逊的AWS,微软的Azure,阿里的阿里云等,越来越多的企业也选择将他们的服务部署到这些 ...

  9. Terraform 多云管理工具

    1. 介绍   Terraform is a tool for building, changing, and versioning infrastructure safely and efficie ...

最新文章

  1. 如何把本地项目上传到Github上面(详细版)
  2. linux虚拟机如何加网卡,linux虚拟机添加新的网卡
  3. java中final使用
  4. 为什么要做稀疏编码_为什么我每天都要编码一年,所以我也学到了什么,以及如何做。...
  5. cc穿盾并发脚本_敢不敢模拟超过 5 万的并发用户?
  6. java quartz2.1_quartz 2.1学习(一)
  7. try_module_get和module_put【转】
  8. 中的枚举属性函数_Java 枚举:有效应用
  9. Tomcat实现Web Socket
  10. 微软补丁导致填制凭证右侧滚动条消失
  11. 反射系数、驻波比、S参数之间的关系
  12. C# .net实现发送手机短信功能
  13. 用excel打开txt文件
  14. 51/stm32单片机软件调试方法与技巧
  15. Win10下蓝牙音箱无法调节音量的解决方案
  16. 如何学习Android及如何利用android来赚钱
  17. 【精华帖】使用PS将图片背景变透明
  18. 三农数据(1996-2020)十六:农产品进出口、农村居民纯收入、消费支出及结构
  19. 计算机丢失wswool.dll什么意思,如何修复Windows 10中丢失的DLL文件
  20. python股票数据分析_Python数据分析之股票走势

热门文章

  1. 化妆品制造商ERP如何保持质量
  2. 电子档案一体化管理系统解决方案是什么
  3. 畅购04——商品管理(分布式ID)
  4. css好看的背景收集
  5. Linux运维工程师中级面试题
  6. MySQL集群之五大常见的MySQL高可用方案
  7. HTTP中的POST和PUT有什么区别?
  8. 项目实战——创建菜单与游戏页面(下)
  9. MySQL sql语言的笔记
  10. MATLAB字符串数组