Terraform es una herramienta IaC (infraestructura como código) de código abierto que proporciona un flujo de trabajo consistente en la CLI para administrar cientos de servicios en la nube. Terraform convierte las API de la nube en archivos de configuración declarativos.
, , , . Terraform, , .
. .
. . — . Terraform .
Terraform — IaC, , .
.
— 1
terraform.tfvars. , .
. , . outputs.tf, providers.tf, variables.tf . . terraform : init, plan, apply
.
( 1)
:
- ,
- .
:
- ;
- , .
— 2
, terraform.tfvars. , .
main.tf variables.tf , terraform . , , :
// Dev Environment terraform plan --var-file="tfvars/environment/dev.tfvars" // QA Environment terraform plan --var-file="tfvars/environment/qa.tfvars" // Prod Environment terraform plan --var-file="tfvars/environment/prod.tfvars"
( 2)
:
- ;
- , .
:
- ;
- , .
Terraform default. , , , . , , default.
terraform workspace
. . , terraform workspace new
.
— , . Terraform — root-. Root- , .tf .
, . , . , .
. , .
Terragrunt
Terragrunt — , DRY , Terraform .
- Terraform — - IaC, CLI .
- , , , .
- Terraform.
- — . .
- Terraform default. , , , .
- — , . , .
- Terragrunt — , DRY , Terraform .
, Terraform. . .