refactor: resolve MX serial by device name instead of hardcoded serial

Igual que con los switches, el serial del MX se resuelve dinámicamente
usando data.meraki_network_devices (device_serials local). El tfvars
ahora usa el campo 'name' en lugar de 'serial'.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Jose Martinez
2026-03-26 20:52:29 +01:00
co-authored by Claude Sonnet 4.6
parent 7fdb3e956e
commit 5d0f043503
4 changed files with 14 additions and 11 deletions
+4 -2
View File
@@ -187,10 +187,12 @@ resource "meraki_appliance_l3_firewall_rules" "reglas_firewall" {
}
# 4b. Configuración WAN estática de los MX (primary y spare)
# El serial se resuelve dinámicamente a partir del nombre del dispositivo
# usando el mismo data source meraki_network_devices que ya se usa para los switches
resource "meraki_device_management_interface" "mx_wan" {
for_each = { for mx in var.mx_wan_uplinks : mx.serial => mx }
for_each = { for mx in var.mx_wan_uplinks : mx.name => mx }
serial = each.key
serial = local.device_serials[each.key]
interfaces_wan1_enabled = each.value.interfaces_wan1_enabled
wan1_static_ip = each.value.wan1_static_ip
wan1_static_subnet_mask = each.value.wan1_static_subnet_mask
+2 -2
View File
@@ -187,7 +187,7 @@ variable "stack_routing_interfaces" {
# Configuración WAN de los firewalls MX (primary y spare)
variable "mx_wan_uplinks" {
type = list(object({
serial = string
name = string # Nombre del dispositivo en el Dashboard
interfaces_wan1_enabled = optional(bool, true)
wan1_static_ip = optional(string, null)
wan1_static_subnet_mask = optional(string, null)
@@ -195,7 +195,7 @@ variable "mx_wan_uplinks" {
wan1_static_dns = optional(list(string), null)
}))
default = []
description = "Configuración de interfaz WAN1 estática para cada MX (primary y spare)."
description = "Configuración de interfaz WAN1 estática para cada MX. El serial se resuelve automáticamente por nombre de dispositivo."
}
# Puertos del firewall MX
+2 -2
View File
@@ -186,7 +186,7 @@ variable "appliance_ports" {
variable "mx_wan_uplinks" {
type = list(object({
serial = string
name = string # Nombre del dispositivo en el Dashboard
interfaces_wan1_enabled = optional(bool, true)
wan1_static_ip = optional(string, null)
wan1_static_subnet_mask = optional(string, null)
@@ -194,5 +194,5 @@ variable "mx_wan_uplinks" {
wan1_static_dns = optional(list(string), null)
}))
default = []
description = "Configuración WAN1 estática de los MX (primary y spare)."
description = "Configuración WAN1 estática de los MX. El serial se resuelve automáticamente por nombre de dispositivo."
}
+6 -5
View File
@@ -1,21 +1,22 @@
# Configuración WAN1 estática de los firewalls MX
# Los seriales se encuentran en: Dashboard > Security & SD-WAN > Appliance > Overview
# El nombre debe coincidir exactamente con el nombre del dispositivo en el Dashboard
# Dashboard > Security & SD-WAN > Appliance > nombre del dispositivo
mx_wan_uplinks = [
{
# MX Primary
serial = "XXXX-XXXX-XXXX" # TODO: reemplazar con serial del MX primary
name = "eqt-lab-fw01-mx01" # TODO: ajustar al nombre real en el Dashboard
interfaces_wan1_enabled = true
wan1_static_ip = "213.229.159.145"
wan1_static_subnet_mask = "255.255.255.240" # /28
wan1_static_subnet_mask = "255.255.255.240" # /28
wan1_static_gateway_ip = "213.229.159.147"
wan1_static_dns = ["8.8.8.8", "8.8.4.4"]
},
{
# MX Spare (Warm Spare / HA)
serial = "YYYY-YYYY-YYYY" # TODO: reemplazar con serial del MX spare
name = "eqt-lab-fw01-mx02" # TODO: ajustar al nombre real en el Dashboard
interfaces_wan1_enabled = true
wan1_static_ip = "213.229.159.146"
wan1_static_subnet_mask = "255.255.255.240" # /28
wan1_static_subnet_mask = "255.255.255.240" # /28
wan1_static_gateway_ip = "213.229.159.147"
wan1_static_dns = ["8.8.8.8", "8.8.4.4"]
},