En aquest tema, aprendrem a utilitzar variables i sortides en Terraform. Les variables ens permeten fer que les nostres configuracions siguin més dinàmiques i reutilitzables, mentre que les sortides ens ajuden a obtenir informació útil dels nostres recursos provisionats.
Variables
Què són les variables?
Les variables en Terraform ens permeten definir valors que poden ser reutilitzats en diferents parts de la nostra configuració. Això fa que el nostre codi sigui més modular i fàcil de mantenir.
Definició de variables
Les variables es defineixen en un fitxer .tf
utilitzant el bloc variable
. Aquí teniu un exemple bàsic:
variable "instance_type" { description = "El tipus d'instància per a la màquina virtual" type = string default = "t2.micro" }
Tipus de variables
Terraform suporta diversos tipus de variables:
string
: Una cadena de text.number
: Un número.bool
: Un valor booleà (true o false).list
: Una llista de valors.map
: Un mapa de claus i valors.
Assignació de valors a les variables
Hi ha diverses maneres d'assignar valors a les variables:
- Fitxer de variables: Podeu crear un fitxer
terraform.tfvars
o*.auto.tfvars
per definir els valors de les variables.
- Línia de comandes: Podeu passar valors a les variables utilitzant l'opció
-var
en la línia de comandes.
- Variables d'entorn: Podeu definir variables d'entorn amb el prefix
TF_VAR_
.
Exemple pràctic
Aquí teniu un exemple complet que utilitza una variable per definir el tipus d'instància d'AWS:
variable "instance_type" { description = "El tipus d'instància per a la màquina virtual" type = string default = "t2.micro" } provider "aws" { region = "us-west-2" } resource "aws_instance" "example" { ami = "ami-0c55b159cbfafe1f0" instance_type = var.instance_type }
Sortides
Què són les sortides?
Les sortides en Terraform ens permeten exposar valors útils dels nostres recursos provisionats. Això és especialment útil quan necessitem utilitzar aquests valors en altres parts de la nostra configuració o simplement per obtenir informació després de l'execució.
Definició de sortides
Les sortides es defineixen en un fitxer .tf
utilitzant el bloc output
. Aquí teniu un exemple bàsic:
Exemple pràctic
Continuant amb l'exemple anterior, afegirem una sortida per obtenir l'ID de la instància AWS:
variable "instance_type" { description = "El tipus d'instància per a la màquina virtual" type = string default = "t2.micro" } provider "aws" { region = "us-west-2" } resource "aws_instance" "example" { ami = "ami-0c55b159cbfafe1f0" instance_type = var.instance_type } output "instance_id" { description = "L'ID de la instància AWS" value = aws_instance.example.id }
Accés a les sortides
Després d'executar terraform apply
, podeu veure les sortides utilitzant el comandament terraform output
:
Exercicis pràctics
Exercici 1: Definir i utilitzar una variable
- Creeu un fitxer
variables.tf
i definiu una variable per al nom de la instància. - Modifiqueu la configuració de la instància per utilitzar aquesta variable.
- Executeu
terraform apply
per veure el resultat.
Exercici 2: Definir i utilitzar una sortida
- Afegiu una sortida per obtenir l'adreça IP pública de la instància.
- Executeu
terraform apply
i utilitzeuterraform output
per veure l'adreça IP pública.
Solucions
Exercici 1
variables.tf
:
variable "instance_name" { description = "El nom de la instància" type = string default = "example-instance" }
main.tf
:
provider "aws" { region = "us-west-2" } resource "aws_instance" "example" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" tags = { Name = var.instance_name } }
Exercici 2
outputs.tf
:
output "instance_public_ip" { description = "L'adreça IP pública de la instància" value = aws_instance.example.public_ip }
Conclusió
En aquest tema, hem après a utilitzar variables i sortides en Terraform per fer que les nostres configuracions siguin més dinàmiques i reutilitzables. Les variables ens permeten definir valors que poden ser reutilitzats en diferents parts de la nostra configuració, mentre que les sortides ens ajuden a obtenir informació útil dels nostres recursos provisionats. Aquests conceptes són fonamentals per escriure configuracions Terraform eficients i mantenibles.
Curs de Terraform
Mòdul 1: Introducció a Terraform
- Què és Terraform?
- Instal·lant Terraform
- Conceptes bàsics de Terraform
- Primera configuració de Terraform
Mòdul 2: Llenguatge de configuració de Terraform
Mòdul 3: Gestió de l'estat
Mòdul 4: Mòduls de Terraform
Mòdul 5: Proveïment de recursos
- Conceptes bàsics de proveïment
- Proveïment de recursos AWS
- Proveïment de recursos Azure
- Proveïment de recursos GCP
Mòdul 6: Funcionalitats avançades de Terraform
Mòdul 7: Millors pràctiques de Terraform
- Organització del codi
- Control de versions
- Proves del codi de Terraform
- Millors pràctiques de seguretat
Mòdul 8: Terraform en CI/CD
- Integració de Terraform amb CI/CD
- Automatització de Terraform amb Jenkins
- Ús de Terraform amb GitHub Actions
- Terraform Cloud i Enterprise