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) # 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" { 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 interfaces_wan1_enabled = each.value.interfaces_wan1_enabled
wan1_static_ip = each.value.wan1_static_ip wan1_static_ip = each.value.wan1_static_ip
wan1_static_subnet_mask = each.value.wan1_static_subnet_mask 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) # Configuración WAN de los firewalls MX (primary y spare)
variable "mx_wan_uplinks" { variable "mx_wan_uplinks" {
type = list(object({ type = list(object({
serial = string name = string # Nombre del dispositivo en el Dashboard
interfaces_wan1_enabled = optional(bool, true) interfaces_wan1_enabled = optional(bool, true)
wan1_static_ip = optional(string, null) wan1_static_ip = optional(string, null)
wan1_static_subnet_mask = 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) wan1_static_dns = optional(list(string), null)
})) }))
default = [] 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 # Puertos del firewall MX
+2 -2
View File
@@ -186,7 +186,7 @@ variable "appliance_ports" {
variable "mx_wan_uplinks" { variable "mx_wan_uplinks" {
type = list(object({ type = list(object({
serial = string name = string # Nombre del dispositivo en el Dashboard
interfaces_wan1_enabled = optional(bool, true) interfaces_wan1_enabled = optional(bool, true)
wan1_static_ip = optional(string, null) wan1_static_ip = optional(string, null)
wan1_static_subnet_mask = 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) wan1_static_dns = optional(list(string), null)
})) }))
default = [] 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."
} }
+4 -3
View File
@@ -1,9 +1,10 @@
# Configuración WAN1 estática de los firewalls MX # 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_wan_uplinks = [
{ {
# MX Primary # 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 interfaces_wan1_enabled = true
wan1_static_ip = "213.229.159.145" 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
@@ -12,7 +13,7 @@ mx_wan_uplinks = [
}, },
{ {
# MX Spare (Warm Spare / HA) # 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 interfaces_wan1_enabled = true
wan1_static_ip = "213.229.159.146" 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