tf/
Na raiz do projeto é onde se encontram os arquivos de configuração do Terraform, como o arquivo de estado, o arquivo de configuração do Terraform e os arquivos de variáveis.
main.tf
No caso de ter um arquivo main.tf
na raiz de um projeto com diversos modulos, ele será o responsável por
mostrar ao terraform quais são os módulos que serão utilizados, aonde eles estão e quais são as variáveis
que serão utilizadas.
module "modulo1" { source = "./modulo1" var1 = var.var1 var2 = local.var2}
provider.tf
O arquivo provider.tf
é onde se configura o provider que será utilizado no projeto, no caso do AWS,
ele é responsável por configurar as credenciais de acesso e a região que será utilizada.
provider "aws" { region = "us-east-1" access_key = var.aws_access_key secret_key = var.aws_secret_key}
terraform.tfvars
O arquivo terraform.tfvars
é uma possibilidade de onde se colocam as variáveis que serão utilizadas no projeto.
var1 = "valor1"var2 = "valor2"
Como dito anteriormente, o arquivo terraform.tfvars
não é o único lugar onde se pode colocar as variáveis,
mas é uma boa prática colocar as variáveis que serão utilizadas no projeto em um arquivo separado.
Na maioria das vezes, dados sensíveis como credenciais de acesso, são colocados no arquivo terraform.tfvars
variables.tf
O arquivo variables.tf
é onde se colocam as variáveis que serão utilizadas no projeto, porém, ao contrário do
terraform.tfvars
, ele não pode ser utilizado para definir os valores das variáveis, apenas para declará-las.
variable "var1" { type = string description = "Descrição da variável"}variable "var2" { type = string description = "Descrição da variável"}
outputs.tf
O arquivo outputs.tf
é onde se colocam os outputs que serão utilizados no projeto.
output "modulo1" { value = module.modulo1}
terraform.tfstate
O arquivo terraform.tfstate
, assim como o terraform.tfstate.backup
é onde o terraform armazena o estado do projeto, ou seja, o que foi criado, o que foi
modificado e o que foi destruído.
terraform.tfstate.d
O diretório terraform.tfstate.d
é onde o terraform armazena o estado do projeto, ou seja, o que foi criado, o que foi
modificado e o que foi destruído, porém, ele é utilizado quando algum workspace está sendo utilizado.