terraform.tfvars与variables.tf差异
我一直在研究这个问题,但找不到区别。variables.tf文件可以存储变量默认值/值,就像terraform.tfvars文件一样 这两者之间有什么区别,需要一个而不是另一个?我的理解是,如果您通过命令行将var文件作为terraform中的参数传入 关于这一点已经有了一个线程,唯一的好处似乎是将tfvars文件作为参数传递,因为您可以“潜在地”在variable.tf文件中分配变量terraform.tfvars与variables.tf差异,terraform,Terraform,我一直在研究这个问题,但找不到区别。variables.tf文件可以存储变量默认值/值,就像terraform.tfvars文件一样 这两者之间有什么区别,需要一个而不是另一个?我的理解是,如果您通过命令行将var文件作为terraform中的参数传入 关于这一点已经有了一个线程,唯一的好处似乎是将tfvars文件作为参数传递,因为您可以“潜在地”在variable.tf文件中分配变量 这是正确的想法吗?A变量。tf文件用于定义变量类型,并可以选择设置默认值 terraform.tfvars文件
这是正确的想法吗?A变量。tf文件用于定义变量类型,并可以选择设置默认值 terraform.tfvars文件用于设置变量的实际值 您可以为所有变量设置默认值,而不使用tfvars文件 实际上,在定义和值之间进行拆分的目的是允许定义公共基础结构设计,然后在每个环境中应用特定的值
使用您提供的多个tfvars文件作为参数,可以为每个环境设置不同的值:机密、VM大小、实例数等。它们之间的区别在于声明和分配
variable
块(实际上可以出现在任何.tf
文件中,但按照惯例都在variables.tf
中)声明变量存在:
variable "example" {}
这告诉Terraform该模块接受一个名为example
的输入变量。说明这一点后,可以在模块中的其他位置使用var.example
来访问变量的值
有几种不同的方法可以为该输入变量赋值:
- 在
或地形平面图
命令行上包括地形应用
选项-var
- 包括
选项以选择一个或多个-var file
文件以同时设置多个变量的值.tfvars
- 创建
文件或名为terraform.tfvars
的文件,这些文件与.auto.tfvars
参数相同,但会自动加载-var file
- 对于子模块,在调用的
块中包含一个表达式以分配给变量模块
.tfvars
文件
由于terraform.tfvars
和.auto.tfvars
在没有任何附加选项的情况下自动加载,因此它们的行为类似于默认值,但目的不同。当运行terraform时,一些用户在运行terraform之前自动生成terraform.tfvars
文件或.auto.tfvars
,以便传入自动化知道的值,例如自动化运行的环境等
在处理子模块时,自动加载的
.tfvars
文件与变量默认值之间的区别更为明显.tfvars
文件(和-var
,-var file
选项)仅适用于,而当该模块用作子模块时,变量默认值也适用,这意味着可以在中省略带有默认值的变量。中var.tf
和变量.tf
之间的区别是什么?@JananathBanuka same