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:

terraform workspace new desenvolupament

Llistar Espais de Treball

Per veure tots els espais de treball disponibles, utilitza la comanda terraform workspace list:

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:

terraform workspace select desenvolupament

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.

terraform workspace delete desenvolupament

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

  1. Crear espais de treball per a desenvolupament i producció:

    terraform workspace new desenvolupament
    terraform workspace new produccio
    
  2. Seleccionar l'espai de treball de desenvolupament:

    terraform workspace select desenvolupament
    
  3. Aplicar la configuració a l'espai de treball de desenvolupament:

    terraform apply
    
  4. Seleccionar l'espai de treball de producció:

    terraform workspace select produccio
    
  5. 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:

terraform workspace list

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

  1. Crear una configuració bàsica de Terraform.
  2. Crear espais de treball per a desenvolupament i producció.
  3. Seleccionar l'espai de treball de desenvolupament i aplicar la configuració.
  4. Seleccionar l'espai de treball de producció i aplicar la configuració.

Solució

  1. Configuració bàsica de Terraform (main.tf):

    provider "aws" {
      region = "us-west-2"
    }
    
    resource "aws_instance" "example" {
      ami           = "ami-0c55b159cbfafe1f0"
      instance_type = "t2.micro"
    }
    
  2. Crear espais de treball:

    terraform workspace new desenvolupament
    terraform workspace new produccio
    
  3. Seleccionar i aplicar configuració a l'espai de treball de desenvolupament:

    terraform workspace select desenvolupament
    terraform apply
    
  4. 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.

© Copyright 2024. Tots els drets reservats