Terraform 学习笔记 - 变量

这一章笔记总结一下变量在Terraform里面的定义和使用。windows

变量在Terraform里面能够经过多种方式来定义:数组

  1. 系统的环境变量
  2. 命令行里面指定
  3. 从文件里面指定
  4. 从variable default的值指定

下面来看几个例子ide

例1 我建立一个EC2, 把一个自定义的变量传给个人 instance_type学习

在terraform,咱们能够额外建立一个文件叫作 variables.tf, 在里面声明咱们的变量值,而后就能够从主文件里面去直接调用里面的值了命令行

咱们的主文件 first_ec2.tf
Terraform 学习笔记 - 变量orm

咱们的变量文件 variables.tf, 里面我设置了默认值
Terraform 学习笔记 - 变量blog

能够看见执行的时候,他自动就替换成了咱们的默认值
Terraform 学习笔记 - 变量字符串

例2 我在执行命令行的时候,能够直接用参数指定新的内容, 这样他就替换了个人默认值cmd

Terraform 学习笔记 - 变量

例3 我建立一个新的文件 terraform.tfvars, 而后在这里面指定个人值string

Terraform 学习笔记 - 变量

执行的时候,他会自动调用 terraform.tfvar 文件的内容赋值给咱们的变量,结果以下所示 ( 效果和default相似)
Terraform 学习笔记 - 变量

注意,若是我既不设置default,也没配置 terraform.tfvar 文件,那么他在配置的时候会自动提示用户手动输入变量值

例4 我从指定的var 文件里面获取参数的值

我新建一个 custom.tfvars 文件,以下所示
Terraform 学习笔记 - 变量

这个文件他默认不会加载,须要咱们手动加载,这样的好处是针对不一样的环境,咱们能够加载不一样的tfvars文件来传递变量值

Terraform 学习笔记 - 变量

例5 环境变量中定义,windows 能够用 setx, Linux能够用 export 命令

我用的是windows
Terraform 学习笔记 - 变量

而后从新打开一个cmd窗口查看一下

Terraform 学习笔记 - 变量

例6 在variables.tf 文件里面定义变量的时候,指定变量的类型,他通常包括 string, list, map 和number四种类型,理解起来就是字符串,列表(数组),字典和数字

下面的例子里 我建立了一个ELB

Terraform 学习笔记 - 变量

定义的变量名和类型

Terraform 学习笔记 - 变量

赋值
Terraform 学习笔记 - 变量

执行便可