Site icon Mr. 沙先生

Terraform 變數的 Input 方式

這篇只是整理官方文件 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 來給予不同參數,擁有充足的彈性。

 

Exit mobile version