En aquest tema, aprendrem com utilitzar Terraform per proveir recursos a Google Cloud Platform (GCP). Explorarem els conceptes bàsics, la configuració necessària i veurem exemples pràctics per crear i gestionar recursos a GCP.

Objectius del Tema

  • Comprendre els conceptes bàsics del proveïment de recursos a GCP amb Terraform.
  • Configurar Terraform per treballar amb GCP.
  • Crear i gestionar recursos bàsics a GCP utilitzant Terraform.

Requisits Previs

  • Coneixements bàsics de Terraform.
  • Un compte de Google Cloud Platform.
  • Instal·lació de l'eina de línia de comandes gcloud.

  1. Configuració Inicial

1.1. Instal·lació de l'eina de línia de comandes gcloud

Si no tens instal·lada l'eina de línia de comandes gcloud, pots seguir les instruccions oficials de Google per instal·lar-la: Instal·lació de gcloud.

1.2. Autenticació amb GCP

Autentica't amb el teu compte de GCP utilitzant l'eina gcloud:

gcloud auth login

1.3. Creació d'un Projecte a GCP

Crea un nou projecte a GCP o utilitza un projecte existent. Pots crear un projecte des de la consola de GCP o utilitzant l'eina gcloud:

gcloud projects create my-terraform-project

1.4. Configuració de les Credencials

Genera un fitxer de credencials per a Terraform:

gcloud iam service-accounts create terraform --display-name "Terraform admin account"
gcloud projects add-iam-policy-binding my-terraform-project --member="serviceAccount:[email protected]" --role="roles/owner"
gcloud iam service-accounts keys create ~/terraform-key.json --iam-account [email protected]

  1. Configuració de Terraform per a GCP

2.1. Fitxer de Proveïdor

Crea un fitxer main.tf i afegeix la configuració del proveïdor de GCP:

provider "google" {
  credentials = file("<path-to-your-key-file>/terraform-key.json")
  project     = "my-terraform-project"
  region      = "us-central1"
}

2.2. Creació d'una Xarxa VPC

Afegeix la configuració per crear una xarxa VPC:

resource "google_compute_network" "vpc_network" {
  name                    = "terraform-network"
  auto_create_subnetworks = "true"
}

2.3. Creació d'una Instància de Compute Engine

Afegeix la configuració per crear una instància de Compute Engine:

resource "google_compute_instance" "vm_instance" {
  name         = "terraform-instance"
  machine_type = "f1-micro"
  zone         = "us-central1-a"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }

  network_interface {
    network = google_compute_network.vpc_network.name
    access_config {
      // Ephemeral IP
    }
  }
}

  1. Desplegament de la Configuració

3.1. Inicialització de Terraform

Inicialitza el directori de treball de Terraform:

terraform init

3.2. Planificació de la Infraestructura

Genera un pla d'execució per veure quins recursos es crearan:

terraform plan

3.3. Aplicació de la Configuració

Aplica la configuració per crear els recursos a GCP:

terraform apply

  1. Exercicis Pràctics

Exercici 1: Crear una Instància de Compute Engine amb una IP Estàtica

  1. Modifica la configuració de la instància per assignar una IP estàtica.
  2. Aplica els canvis i verifica que la instància té una IP estàtica.

Exercici 2: Crear un Bucket de Google Cloud Storage

  1. Afegeix la configuració per crear un bucket de Google Cloud Storage.
  2. Aplica la configuració i verifica que el bucket s'ha creat correctament.

Solucions

Solució Exercici 1

resource "google_compute_address" "static_ip" {
  name = "terraform-static-ip"
}

resource "google_compute_instance" "vm_instance" {
  name         = "terraform-instance"
  machine_type = "f1-micro"
  zone         = "us-central1-a"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }

  network_interface {
    network = google_compute_network.vpc_network.name
    access_config {
      nat_ip = google_compute_address.static_ip.address
    }
  }
}

Solució Exercici 2

resource "google_storage_bucket" "terraform_bucket" {
  name     = "my-terraform-bucket"
  location = "US"
}

Conclusió

En aquest tema, hem après com configurar Terraform per treballar amb GCP i com crear recursos bàsics com xarxes VPC i instàncies de Compute Engine. També hem practicat amb exercicis per reforçar els conceptes apresos. En el següent mòdul, explorarem funcionalitats avançades de Terraform.

© Copyright 2024. Tots els drets reservats