Introducció

Terraform és una eina d'infraestructura com a codi (IaC) desenvolupada per HashiCorp. Permet als usuaris definir i proporcionar infraestructura de manera segura i eficient utilitzant un llenguatge de configuració declaratiu anomenat HashiCorp Configuration Language (HCL). Amb Terraform, pots gestionar recursos de diversos proveïdors de serveis en el núvol, com AWS, Azure, Google Cloud Platform, i molts altres, des d'un sol lloc.

Conceptes Clau

Infraestructura com a Codi (IaC)

  • Definició: IaC és la pràctica de gestionar i proporcionar la infraestructura mitjançant fitxers de configuració llegibles per màquines, en lloc de fer-ho manualment.
  • Beneficis:
    • Consistència: Redueix errors humans i assegura que la infraestructura es desplega de manera consistent.
    • Versionat: Permet versionar la infraestructura de la mateixa manera que el codi de l'aplicació.
    • Automatització: Facilita l'automatització del desplegament i la gestió de la infraestructura.

Declaratiu vs Imperatiu

  • Declaratiu: Amb Terraform, defines què vols que sigui l'estat final de la teva infraestructura, i Terraform s'encarrega de fer els canvis necessaris per arribar a aquest estat.
  • Imperatiu: En altres eines, has de definir els passos exactes per arribar a l'estat desitjat.

Proveïdors

  • Definició: Els proveïdors són responsables de la interacció amb les API dels serveis en el núvol i altres plataformes. Cada proveïdor té el seu propi conjunt de recursos que pot gestionar.
  • Exemples: AWS, Azure, Google Cloud Platform, Kubernetes, etc.

Com Funciona Terraform?

Fitxers de Configuració

  • HCL: Terraform utilitza HCL per definir la infraestructura. Els fitxers de configuració tenen l'extensió .tf.
  • Exemple:
    provider "aws" {
      region = "us-west-2"
    }
    
    resource "aws_instance" "example" {
      ami           = "ami-0c55b159cbfafe1f0"
      instance_type = "t2.micro"
    }
    

Cicle de Vida de Terraform

  1. Escriure: Defineix la infraestructura en fitxers de configuració.
  2. Planificar: Utilitza terraform plan per veure quins canvis es faran a la infraestructura.
  3. Aplicar: Utilitza terraform apply per fer els canvis a la infraestructura.
  4. Destruir: Utilitza terraform destroy per eliminar la infraestructura creada.

Estat de Terraform

  • Definició: Terraform manté un fitxer d'estat que conté informació sobre la infraestructura gestionada.
  • Funció: Aquest fitxer d'estat és utilitzat per determinar els canvis necessaris per arribar a l'estat desitjat.

Exemples Pràctics

Exemple Bàsic

  • Objectiu: Crear una instància EC2 a AWS.
  • Codi:
    provider "aws" {
      region = "us-west-2"
    }
    
    resource "aws_instance" "example" {
      ami           = "ami-0c55b159cbfafe1f0"
      instance_type = "t2.micro"
    }
    
  • Explicació:
    • provider "aws": Defineix el proveïdor AWS i la regió.
    • resource "aws_instance" "example": Defineix una instància EC2 amb l'AMI especificada i el tipus d'instància.

Exercici Pràctic

  • Objectiu: Crear una instància EC2 a AWS.
  • Passos:
    1. Instal·la Terraform (veure el següent tema del curs).
    2. Crea un fitxer main.tf amb el codi de l'exemple bàsic.
    3. Executa terraform init per inicialitzar el directori de treball.
    4. Executa terraform plan per veure el pla d'execució.
    5. Executa terraform apply per crear la instància EC2.
    6. Executa terraform destroy per eliminar la instància EC2.

Conclusió

Terraform és una eina poderosa per gestionar la infraestructura com a codi. La seva capacitat per treballar amb múltiples proveïdors i la seva naturalesa declarativa la fan una opció excel·lent per a la gestió d'infraestructura moderna. En els següents temes, explorarem com instal·lar Terraform i començar a treballar amb configuracions bàsiques.

© Copyright 2024. Tots els drets reservats