Els fitxers d'estat són una part fonamental de Terraform. Aquests fitxers emmagatzemen informació sobre la infraestructura gestionada per Terraform, permetent que Terraform conegui l'estat actual dels recursos. En aquesta secció, explorarem en profunditat els fitxers d'estat, la seva importància, com es gestionen i les millors pràctiques per treballar amb ells.

Què és un fitxer d'estat?

Un fitxer d'estat és un fitxer que conté un registre de tots els recursos que Terraform ha creat i està gestionant. Aquest fitxer permet a Terraform saber quins recursos existeixen, quins canvis s'han fet i quins canvis cal aplicar.

Importància dels fitxers d'estat

  • Seguiment de recursos: Els fitxers d'estat permeten a Terraform mantenir un registre dels recursos que ha creat, modificat o eliminat.
  • Optimització de canvis: Amb l'estat actual dels recursos, Terraform pot calcular de manera eficient els canvis necessaris per portar la infraestructura a l'estat desitjat.
  • Col·laboració: Els fitxers d'estat permeten que múltiples usuaris treballin en la mateixa infraestructura de manera coordinada.

Estructura d'un fitxer d'estat

Els fitxers d'estat estan en format JSON i contenen diverses seccions clau:

  • Version: La versió del fitxer d'estat.
  • Terraform_version: La versió de Terraform utilitzada per crear o modificar l'estat.
  • Resources: Una llista de tots els recursos gestionats per Terraform, incloent-hi els seus atributs i metadades.

Exemple d'un fitxer d'estat

{
  "version": 4,
  "terraform_version": "1.0.0",
  "resources": [
    {
      "module": "module.vpc",
      "mode": "managed",
      "type": "aws_vpc",
      "name": "main",
      "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
      "instances": [
        {
          "schema_version": 0,
          "attributes": {
            "id": "vpc-12345678",
            "cidr_block": "10.0.0.0/16",
            "tags": {
              "Name": "main-vpc"
            }
          }
        }
      ]
    }
  ]
}

Gestió dels fitxers d'estat

Ubicació del fitxer d'estat

Per defecte, Terraform emmagatzema el fitxer d'estat en el directori de treball actual amb el nom terraform.tfstate. També es crea un fitxer de còpia de seguretat anomenat terraform.tfstate.backup.

Comandes relacionades amb l'estat

  • terraform init: Inicialitza una configuració de treball de Terraform.
  • terraform plan: Compara l'estat actual amb la configuració desitjada i genera un pla d'execució.
  • terraform apply: Aplica els canvis necessaris per portar la infraestructura a l'estat desitjat.
  • terraform refresh: Actualitza l'estat actual amb la informació més recent dels proveïdors de recursos.
  • terraform state: Proporciona diverses subcomandes per gestionar l'estat, com ara list, show, mv, rm, etc.

Millors pràctiques per gestionar els fitxers d'estat

  • Control de versions: No incloure els fitxers d'estat en el control de versions. Utilitzar un emmagatzematge remot per compartir l'estat entre equips.
  • Seguretat: Protegir els fitxers d'estat, ja que poden contenir informació sensible.
  • Còpies de seguretat: Mantenir còpies de seguretat regulars dels fitxers d'estat per evitar pèrdues de dades.

Exercici pràctic

Objectiu

Crear una configuració simple de Terraform que defineixi un recurs i observar com es crea i actualitza el fitxer d'estat.

Passos

  1. Crear un fitxer de configuració de Terraform:

    provider "aws" {
      region = "us-west-2"
    }
    
    resource "aws_s3_bucket" "example" {
      bucket = "my-unique-bucket-name"
      acl    = "private"
    }
    
  2. Inicialitzar la configuració:

    terraform init
    
  3. Aplicar la configuració:

    terraform apply
    
  4. Observar el fitxer d'estat:

    Després d'executar terraform apply, obrir el fitxer terraform.tfstate i revisar el contingut per veure com s'ha registrat el recurs S3.

Solució

Després d'executar els passos anteriors, el fitxer terraform.tfstate hauria de contenir informació sobre el bucket S3 creat, similar a l'exemple de fitxer d'estat proporcionat anteriorment.

Conclusió

Els fitxers d'estat són essencials per al funcionament de Terraform, ja que permeten mantenir un registre dels recursos gestionats i optimitzar els canvis necessaris. És important gestionar aquests fitxers amb cura, seguint les millors pràctiques per garantir la seguretat i la col·laboració eficient entre equips.

© Copyright 2024. Tots els drets reservats