這篇只是整理官方文件 Input Variables 後的筆記
Terraform 用 var 來引入參數,而參數會寫在 variables,就像這樣:
先定義 var
resource "aws_vpc" "main" { cidr_block = "${var.cidr}" }
然後在 variables 把參數 input 進去。
variable "cidr" { description = "vpc cidr." default = "10.0.0.0/16" }
除此之外,還可以透過 tfvars 檔案的形式 input,假設 variables 這邊 10.0.0.0/16 只是 default 值,而我要在 tfvars input 實際的參數
預設 Terraform 會在當前的目錄找 terraform.tfvars 或是 *.auto.tfvars 的檔案做 input
# main.auto.tfvars cidr = "172.16.0.0/16"
這樣 aws_vpc 這個 resource 取到的 cidr_block 就會是 172.16.0.0/16 這個值。
或是可以用 Terraform cli 指定 tfvars 檔案
$ terraform plan \ -var-file="secret.tfvars" \ -var-file="production.tfvars"
或是直接寫在 cli
$ terraform plan -var 'cidr="172.16.0.0/16"'
透過這幾種方式,你可以同時佈署很多個環境,透過不同的 input file 來給予不同參數,擁有充足的彈性。