diff --git a/modules/meraki-site/main.tf b/modules/meraki-site/main.tf index 10c92e9..ce7a121 100755 --- a/modules/meraki-site/main.tf +++ b/modules/meraki-site/main.tf @@ -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 diff --git a/modules/meraki-site/variables.tf b/modules/meraki-site/variables.tf index 8ecf07e..e4a2489 100755 --- a/modules/meraki-site/variables.tf +++ b/modules/meraki-site/variables.tf @@ -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 diff --git a/sites/BCN01-LAB/variables.tf b/sites/BCN01-LAB/variables.tf index 9802f2c..965f785 100755 --- a/sites/BCN01-LAB/variables.tf +++ b/sites/BCN01-LAB/variables.tf @@ -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." } diff --git a/sites/BCN01-LAB/wan.auto.tfvars b/sites/BCN01-LAB/wan.auto.tfvars index 2303b6b..6af2d8b 100644 --- a/sites/BCN01-LAB/wan.auto.tfvars +++ b/sites/BCN01-LAB/wan.auto.tfvars @@ -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"] },