Terraform使用輸入變數(input variables)作為module參數簡單範例。
在「Terraform local_file hello world」範例的hello.tf中利用了local_file resouce產生一個內容為Hello world!的文字檔hello.txt。下面則把local_file resource的content的值以input variable的方式傳入。
在hello.tf同個目錄中新增variables.tf內容如下。
variable為定義module變數的variable block,後面的label為變數名稱;
type參數定義變數型態,例如string、number、bool、list、map等;
default定義變數的預設值。
variables.tf
variable "content" {
type = string
default = "Hello world!"
}
所以上面定義的變數名稱為content,型態為string,預設值為Hello world!。
接著把hello.tf中的content值改為var.content,則Terraform執行時會把變數content的值Hello world!傳入。
hello.tf
resource "local_file" "hello" {
filename = "${path.module}/hello.txt"
content = var.content
}
在hello.tf所在目錄以命令列輸入terraform apply執行。
/.../terraform-demo$ terraform apply
local_file.hello: Refreshing state... [id=d3486ae9136e7856bc42212385ea797094475802]
No changes. Your infrastructure matches the configuration.
Terraform has compared your real infrastructure against your configuration and
found no differences, so no changes are needed.
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
因為執行結果的內容沒改變仍是Hello world!,所以可看到No changes的訊息。
把variables.tf中的變數content的預設內容修改如下。
variables.tf
variable "content" {
type = string
default = "Good to see you"
}
再次執行terraform apply則文字檔內容改變所以出現下面訊息。
/.../terraform-demo$ local_file.hello: Refreshing state... [id=d3486ae9136e7856bc42212385ea797094475802]
Terraform used the selected providers to generate the following execution plan.
Resource actions are indicated with the following symbols:
-/+ destroy and then create replacement
Terraform will perform the following actions:
# local_file.hello must be replaced
-/+ resource "local_file" "hello" {
~ content = "Hello world!" -> "Good to see you" # forces replacement
~ id = "d3486ae9136e7856bc42212385ea797094475802" -> (known after apply)
# (3 unchanged attributes hidden)
}
Plan: 1 to add, 0 to change, 1 to destroy.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
local_file.hello: Destroying... [id=d3486ae9136e7856bc42212385ea797094475802]
local_file.hello: Destruction complete after 0s
local_file.hello: Creating...
local_file.hello: Creation complete after 0s [id=f6223772272ac430c8211036fb62cc8b3f41c09f]
Apply complete! Resources: 1 added, 0 changed, 1 destroyed.
執行後hello.txt的內容如下。
hello.txt
Good to see you
參考github。
沒有留言:
張貼留言