Introducció
Els espais de treball de Terraform són una funcionalitat avançada que permet gestionar múltiples entorns dins d'una mateixa configuració de Terraform. Això és especialment útil per separar entorns de desenvolupament, proves i producció sense haver de duplicar el codi de configuració.
Conceptes Clau
- Espai de treball: Un espai de treball és una instància de l'estat de Terraform. Cada espai de treball té el seu propi fitxer d'estat.
- Espai de treball per defecte: Quan es crea una nova configuració de Terraform, es crea automàticament un espai de treball anomenat
default
. - Comandes d'espais de treball: Terraform proporciona diverses comandes per gestionar els espais de treball, com ara crear, llistar, seleccionar i eliminar espais de treball.
Comandes d'Espais de Treball
Crear un Nou Espai de Treball
Per crear un nou espai de treball, utilitza la comanda terraform workspace new
seguida del nom de l'espai de treball:
Llistar Espais de Treball
Per veure tots els espais de treball disponibles, utilitza la comanda terraform workspace list
:
Seleccionar un Espai de Treball
Per canviar a un altre espai de treball, utilitza la comanda terraform workspace select
seguida del nom de l'espai de treball:
Eliminar un Espai de Treball
Per eliminar un espai de treball, utilitza la comanda terraform workspace delete
seguida del nom de l'espai de treball. Nota: No pots eliminar l'espai de treball actual, primer has de canviar a un altre espai de treball.
Exemple Pràctic
Configuració Inicial
Suposem que tenim una configuració bàsica de Terraform per desplegar una instància d'EC2 a AWS. El fitxer main.tf
podria semblar així:
provider "aws" { region = "us-west-2" } resource "aws_instance" "example" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" }
Crear i Seleccionar Espais de Treball
-
Crear espais de treball per a desenvolupament i producció:
terraform workspace new desenvolupament terraform workspace new produccio
-
Seleccionar l'espai de treball de desenvolupament:
terraform workspace select desenvolupament
-
Aplicar la configuració a l'espai de treball de desenvolupament:
terraform apply
-
Seleccionar l'espai de treball de producció:
terraform workspace select produccio
-
Aplicar la configuració a l'espai de treball de producció:
terraform apply
Verificar els Espais de Treball
Després d'aplicar la configuració a cada espai de treball, pots verificar que cada espai de treball té el seu propi estat independent:
Exercici Pràctic
Objectiu
Crear dos espais de treball (desenvolupament i producció) i desplegar una instància d'EC2 a cada espai de treball.
Passos
- Crear una configuració bàsica de Terraform.
- Crear espais de treball per a desenvolupament i producció.
- Seleccionar l'espai de treball de desenvolupament i aplicar la configuració.
- Seleccionar l'espai de treball de producció i aplicar la configuració.
Solució
-
Configuració bàsica de Terraform (
main.tf
):provider "aws" { region = "us-west-2" } resource "aws_instance" "example" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" }
-
Crear espais de treball:
terraform workspace new desenvolupament terraform workspace new produccio
-
Seleccionar i aplicar configuració a l'espai de treball de desenvolupament:
terraform workspace select desenvolupament terraform apply
-
Seleccionar i aplicar configuració a l'espai de treball de producció:
terraform workspace select produccio terraform apply
Resum
Els espais de treball de Terraform permeten gestionar múltiples entorns dins d'una mateixa configuració, facilitant la separació d'entorns de desenvolupament, proves i producció. Utilitzant les comandes adequades, pots crear, llistar, seleccionar i eliminar espais de treball, mantenint així un control eficient sobre els teus entorns d'infraestructura.
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