Sobes.tech
Middle

Hoe bepaalt Terraform in welk bestand de informatie staat?

sobes.tech AI

Antwoord van AI

Terraform laadt en verwerkt automatisch alle bestanden met de extensies .tf en .tfvars in de directory waaruit het wordt uitgevoerd (werkdirectory). Het vereist niet dat je expliciet de bestanden aangeeft.

  • De .tf-bestanden bevatten de hoofdconfiguratieblokken: resources, providers, variabelen, outputs, modules, enz.
  • De .tfvars-bestanden bevatten definities van waarden voor variabelen die in .tf-bestanden zijn gedeclareerd. Er kunnen ook bestanden worden gebruikt met namen zoals terraform.tfvars of een bestand met de naam van de omgeving en de extensie .tfvars (bijvoorbeeld dev.tfvars) voor automatische laden.

Terraform combineert de informatie uit al deze bestanden om de uiteindelijke afhankelijkheidsgrafiek en het uitvoeringsplan te bouwen.

Voorbeeld van directorystructuur:

/project
├── main.tf         # Hoofdrsourcen
├── variables.tf    # Declaratie van variabelen
├── outputs.tf      # Declaratie van outputwaarden
├── terraform.tfvars # Waarden van variabelen voor de standaardomgeving
└── modules/
    └── vpc/
        ├── main.tf
        ├── variables.tf
        └── outputs.tf

In dit voorbeeld, bij het uitvoeren vanaf /project, laadt Terraform main.tf, variables.tf en outputs.tf. De waarden uit terraform.tfvars worden toegepast op de variabelen gedeclareerd in variables.tf. De module /modules/vpc wordt geladen als deze wordt aangeroepen in een van de bovenliggende bestanden.

Het is belangrijk op te merken dat de volgorde van de declaraties binnen een bestand of tussen bestanden niet uitmaakt voor Terraform. Het bouwt de afhankelijkheidsgrafiek en voert operaties uit in parallel, indien mogelijk, op basis van de verbindingen tussen resources en andere configuratie-elementen.