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
- Comprendre les diferències entre Terraform Cloud i Terraform Enterprise.
- Aprendre a configurar i utilitzar Terraform Cloud.
- Explorar les funcionalitats avançades de Terraform Enterprise.
- 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
- Visita Terraform Cloud i crea un compte.
- Verifica el teu correu electrònic i inicia sessió.
Pas 2: Crear una organització
- Després d'iniciar sessió, crea una nova organització.
- Assigna un nom i una descripció a l'organització.
Pas 3: Crear un workspace
- Dins de l'organització, crea un nou workspace.
- Selecciona el tipus de workspace (VCS, CLI-driven, etc.).
- Configura el workspace segons les teves necessitats (repositori de codi, variables d'entorn, etc.).
Pas 4: Configurar el repositori de codi
- Connecta el teu repositori de codi (GitHub, GitLab, Bitbucket, etc.) al workspace.
- Defineix les branques i els triggers per a l'execució automàtica dels plans.
Pas 5: Executar el primer pla
- Puja la teva configuració de Terraform al repositori.
- Terraform Cloud detectarà els canvis i executarà un pla automàticament.
- 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
- Crea un compte a Terraform Cloud i una organització.
- Crea un workspace i connecta'l al teu repositori de codi.
- 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" }
- Revisa el pla generat per Terraform Cloud i aplica els canvis.
Solució
- Després de pujar la configuració, Terraform Cloud generarà un pla.
- Revisa el pla per assegurar-te que tot és correcte.
- 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.
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