Taller: Terraform y nuestro primer recurso en Azure.

DevOps IaaC Taller Terraform

En este artículo, vamos a crear nuestro primer script de Terraform. Os dejamos el siguiente artículo por si queréis profundizar más sobre Terraform.

El script creará los siguientes recursos:

  • Un grupo de recursos: contenedor que almacena los recursos relacionados con una solución de Azure.
  • Una red virtual: es un bloque de creación básico de una red privada en Azure.
  • Dos subredes: segmentos del intervalo de direcciones IP de una red virtual donde puede colocar grupos de recursos aislados.

Requisitos previos

  1. Dispón de una cuenta de Azure con una suscripción activa.
  2. Instalar Terraform: Descarga e instala Terraform desde la página oficial.
  3. Instalar Azure CLI: Descarga e instala la Azure CLI desde la página oficial e i nicia sesión en Azure: bash az login

Paso 1: Crear los archivos de configuración de Terraform

Crea un directorio para tus archivos de Terraform y navega a él:

mkdir terraform-azure-network
cd terraform-azure-network

Paso 2: Escribir los archivos de configuración de Terraform

  1. Archivo main.tf: Define el proveedor y los recursos necesarios para crear una red virtual con dos subredes.
   provider "azurerm" {
     features {}
   }

   resource "azurerm_resource_group" "terraform-rg" {
     name     = "terraform-rg"
     location = "West Europe"
   }

   resource "azurerm_virtual_network" "vnet-terraform" {
     name                = "vnet-terraform"
     address_space       = ["10.0.0.0/16"]
     location            = azurerm_resource_group.terraform-rg.location
     resource_group_name = azurerm_resource_group.terraform-rg.name
   }

   resource "azurerm_subnet" "subnet1" {
     name                 = "subnet1"
     resource_group_name  = azurerm_resource_group.terraform-rg.name
     virtual_network_name = azurerm_virtual_network.vnet-terraform.name
     address_prefixes     = ["10.0.1.0/24"]
   }

   resource "azurerm_subnet" "subnet2" {
     name                 = "subnet2"
     resource_group_name  = azurerm_resource_group.terraform-rg.name
     virtual_network_name = azurerm_virtual_network.vnet-terraform.name
     address_prefixes     = ["10.0.2.0/24"]
   }
  1. Archivo variables.tf (opcional): Define variables para parametrizar la configuración.
   variable "resource_group_name" {
     type        = string
     description = "Nombre del grupo de recursos"
     default     = "terraform-rg"
   }

   variable "location" {
     type        = string
     description = "Datacenter del grupo de recursos"
     default     = "West Europe"
   }

   variable "vnet_name" {
     type        = string
     description = "Nombre de la vnet"
     default     = "vnet-terraform"
   }

   variable "vnet_address_space" {
     type        = list(string)
     description = "Espacio de direcciones de la vnet"
     default     = ["10.0.0.0/16"]
   }

   variable "subnet1_name" {
     type        = string
     description = "Nombre de la 1ªSubnet"
     default     = "subnet1"
   }

   variable "subnet1_prefix" {
     type        = string
     description = "Prefijo de la 1ªSubnet"
     default     = "10.0.1.0/24"
   }

   variable "subnet2_name" {
     type        = string
     description = "Nombre de la 2ªSubnet"
     default     = "subnet2"
   }

   variable "subnet2_prefix" {
     type        = string
     description = "Prefijo de la 2ªSubnet"
     default     = "10.0.2.0/24"
   }
  1. Archivo outputs.tf (opcional): Define las salidas para mostrar información útil después de aplicar la configuración.
   output "resource_group_name" {
     value = azurerm_resource_group.terraform-rg.name
   }

   output "vnet_name" {
     value = azurerm_virtual_network.vnet-terraform.name
   }

   output "subnet1_name" {
     value = azurerm_subnet.subnet1.name
   }

   output "subnet2_name" {
     value = azurerm_subnet.subnet2.name
   }

Paso 3: Inicializar y aplicar la configuración

  1. Inicializar el directorio de trabajo: Esto descargará los proveedores necesarios y preparará el directorio para Terraform generando el fichero .terraform.lock.hcl
   terraform init

  1. Previsualizar los cambios: Muestra un plan de ejecución con los cambios que Terraform hará.
   terraform plan

  1. Aplicar la configuración: Aplica los cambios para crear la infraestructura en Azure.
   terraform apply


Paso 4: Limpiar los recursos

Para destruir la infraestructura creada con Terraform, usa el comando destroy:

terraform destroy

Esperamos que te haya resultado de interés y te animamos a participar.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *