Introducció

Terraform Cloud i Terraform Enterprise són serveis gestionats per HashiCorp que proporcionen una plataforma per a la col·laboració, la gestió i l'automatització de la infraestructura com a codi (IaC) amb Terraform. Aquests serveis ofereixen funcionalitats avançades com la gestió d'usuaris, l'emmagatzematge remot de l'estat, l'execució automatitzada de plans i aplicacions, i molt més.

Objectius d'aquest tema

  1. Comprendre les diferències entre Terraform Cloud i Terraform Enterprise.
  2. Aprendre a configurar i utilitzar Terraform Cloud.
  3. Explorar les funcionalitats avançades de Terraform Enterprise.
  4. Realitzar exercicis pràctics per consolidar els coneixements adquirits.

Diferències entre Terraform Cloud i Terraform Enterprise

Característica Terraform Cloud Terraform Enterprise
Tipus de servei SaaS (Software as a Service) On-premises o SaaS
Gestió d'usuaris Integració amb VCS, SSO Integració amb VCS, SSO, LDAP, SAML
Emmagatzematge d'estat Emmagatzematge remot gestionat Emmagatzematge remot gestionat
Execució de plans Automatitzada en el núvol Automatitzada en el núvol o on-premises
Control d'accés Rol-based access control (RBAC) Rol-based access control (RBAC)
Integració amb CI/CD Webhooks, API Webhooks, API
Funcionalitats avançades Workspaces, Sentinel, Notificacions Workspaces, Sentinel, Notificacions, Més

Configuració de Terraform Cloud

Pas 1: Crear un compte a Terraform Cloud

  1. Visita Terraform Cloud i crea un compte.
  2. Verifica el teu correu electrònic i inicia sessió.

Pas 2: Crear una organització

  1. Després d'iniciar sessió, crea una nova organització.
  2. Assigna un nom i una descripció a l'organització.

Pas 3: Crear un workspace

  1. Dins de l'organització, crea un nou workspace.
  2. Selecciona el tipus de workspace (VCS, CLI-driven, etc.).
  3. Configura el workspace segons les teves necessitats (repositori de codi, variables d'entorn, etc.).

Pas 4: Configurar el repositori de codi

  1. Connecta el teu repositori de codi (GitHub, GitLab, Bitbucket, etc.) al workspace.
  2. Defineix les branques i els triggers per a l'execució automàtica dels plans.

Pas 5: Executar el primer pla

  1. Puja la teva configuració de Terraform al repositori.
  2. Terraform Cloud detectarà els canvis i executarà un pla automàticament.
  3. Revisa el pla i aplica els canvis si tot és correcte.

Exemple de configuració

# main.tf
provider "aws" {
  region = "us-west-2"
}

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
}

Funcionalitats avançades de Terraform Enterprise

Gestió d'usuaris i permisos

Terraform Enterprise permet una gestió avançada d'usuaris i permisos, incloent la integració amb sistemes d'autenticació com LDAP i SAML. Això permet una millor gestió de l'accés i la seguretat.

Sentinel

Sentinel és un motor de polítiques que permet definir i aplicar polítiques de seguretat i compliment en les configuracions de Terraform. Això ajuda a garantir que les configuracions compleixin amb les normatives i estàndards de l'organització.

Integració amb CI/CD

Terraform Enterprise ofereix una integració avançada amb sistemes de CI/CD, permetent l'automatització completa del cicle de vida de la infraestructura. Això inclou la creació, l'actualització i la destrucció de recursos de manera segura i controlada.

Exercici pràctic

Objectiu

Configurar un workspace a Terraform Cloud per desplegar una instància EC2 a AWS.

Passos

  1. Crea un compte a Terraform Cloud i una organització.
  2. Crea un workspace i connecta'l al teu repositori de codi.
  3. Puja la configuració següent al repositori:
# main.tf
provider "aws" {
  region = "us-west-2"
}

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
}
  1. Revisa el pla generat per Terraform Cloud i aplica els canvis.

Solució

  1. Després de pujar la configuració, Terraform Cloud generarà un pla.
  2. Revisa el pla per assegurar-te que tot és correcte.
  3. Aplica els canvis per desplegar la instància EC2.

Conclusió

Terraform Cloud i Terraform Enterprise ofereixen una plataforma robusta per a la gestió i l'automatització de la infraestructura com a codi. Amb funcionalitats avançades com la gestió d'usuaris, l'emmagatzematge remot de l'estat, l'execució automatitzada de plans i l'integració amb CI/CD, aquestes eines són essencials per a qualsevol organització que vulgui adoptar IaC de manera eficient i segura.

En el proper tema, explorarem com integrar Terraform amb sistemes de CI/CD com Jenkins i GitHub Actions per automatitzar completament el cicle de vida de la infraestructura.

© Copyright 2024. Tots els drets reservats