Terraformのvariablesを使ってみる
例えばAzureのリソースをTerraformで管理しようとしたときに、
誰でも最初はmain.tf
をこう書くんじゃないだろうか。
リソースグループ名だけまず作るやつ。
# Azurerm Provider terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = "=2.97.0" } } } provider "azurerm" { features {} } resource "azurerm_resource_group" "main" { name = "koralle-sample-resources" location = "Japan East" }
リソースグループ名はmain.tf
にベタ書きするんじゃなく変数で定義したくなったとする。
その場合は、main.tf
とは別にvariables.tf
を作って、
その中でリソースグループ名を変数定義してあげれば良い。
variable "resource_group_name" { description = "Azure Resource Group Name" type = string default = "koralle-sample-resources" }
このresource_group_name
という変数をmain.tf
から参照する。
# Azurerm Provider terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = "=2.97.0" } } } provider "azurerm" { features {} } resource "azurerm_resource_group" "main" { name = var.resource_group_name location = "Japan East" }
たまたま Terraform x AWSのTutorialのページを見ていると、こんな事が書いてあった。
Note: Terraform loads all files in the current directory ending in .tf, so you can name your configuration files however you choose.
main.tf
と同階層にある*.tf
は全部Terraformに読み込まれるらしく、
ファイル名は自由に命名していいらしい。
つまりvariables.tf
をhogehoge.tf
に変えてもいける...?(いけた)