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
- Dispón de una cuenta de Azure con una suscripción activa.
- Instalar Terraform: Descarga e instala Terraform desde la página oficial.
- 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
- 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"]
}
- 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"
}
- 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
- Inicializar el directorio de trabajo: Esto descargará los proveedores necesarios y preparará el directorio para Terraform generando el fichero .terraform.lock.hcl
terraform init
- Previsualizar los cambios: Muestra un plan de ejecución con los cambios que Terraform hará.
terraform plan
- 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.