135 Commits
Author SHA1 Message Date
Jose MartinezandClaude Sonnet 4.6 30379c343e docs: add comment explaining OWE API limitation on EQT-CORPO
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 07:21:03 +01:00
Jose MartinezandClaude Sonnet 4.6 5cdc09747e feat: SSID encryption + WAN/uplink switch ports 44-48
SSIDs:
- EQT-CORPO: wpa_encryption_mode → null (OWE / Enhanced Open)
- EQT-GUEST: wpa_encryption_mode → WPA3 Transition Mode

Puertos stack bcn01-lab-stack01 (sw01 y sw02):
- Puerto 44: access VLAN 111 WAN — ISP router 1
- Puerto 45: access VLAN 111 WAN — WAN 1 BCN01-F04-MX01
- Puerto 46: access VLAN 111 WAN — WAN 1 BCN01-F04-MX02
- Puerto 47: trunk VLAN nativa 109, todas — UPLINK LAN BCN01-F04-MX01
- Puerto 48: trunk VLAN nativa 109, todas — UPLINK LAN BCN01-F04-MX02

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 07:17:42 +01:00
Jose MartinezandGitHub Enterprise ee0f34bd34 Merge pull request #17 from its-corp/feature/bcn01-ap-internet-rule
Feature/bcn01 ap internet rule
2026-03-27 06:30:26 +01:00
Jose MartinezandClaude Sonnet 4.6 493ef14933 fix: add virtual_ip2 10.212.160.40 for WAN2 warm spare
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 05:27:52 +01:00
Jose MartinezandClaude Sonnet 4.6 25cf428235 fix: remove virtual_ip2 — WAN2 se desconecta, todo el tráfico por WAN1
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 21:33:03 +01:00
Jose MartinezandClaude Sonnet 4.6 0afeda07bc fix: change virtual_ip2 to free IP (can't use WAN IP itself)
La API rechaza que virtual_ip2 coincida con la WAN IP del dispositivo.
Cambiado a 10.212.169.133 (IP libre adyacente en el rango WAN2).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 21:27:20 +01:00
Jose MartinezandGitHub Enterprise 363174c2c3 Merge pull request #16 from its-corp/feature/bcn01-ap-internet-rule
fix: add virtual_ip2 for WAN2 in warm spare (WAN2 DHCP activo)
2026-03-26 21:25:57 +01:00
Jose MartinezandClaude Sonnet 4.6 4e319962a8 fix: add virtual_ip2 for WAN2 in warm spare (WAN2 DHCP activo)
La API de Meraki exige virtual_ip2 cuando WAN2 está activo.
Se usa la IP DHCP actual del primary (10.212.169.132) como VIP WAN2.
Pendiente: hacer reserva DHCP para estabilizar esa IP.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 21:20:42 +01:00
Jose MartinezandGitHub Enterprise 5525f12094 Merge pull request #15 from its-corp/feature/bcn01-ap-internet-rule
Feature/bcn01 ap internet rule
2026-03-26 21:13:36 +01:00
Jose MartinezandClaude Sonnet 4.6 632205f997 fix: sync dashboard drift — Javi synology rule + Servers port VLAN
- Añade regla firewall "Acceso Javi a synology" (posición 4):
  allow GUEST (10.2.40.0/21) → 10.2.56.0/24
- Corrige VLAN del puerto Servers (eqt-lab-st01-sw01:1): 110 → 101
  para coincidir con el estado actual del Dashboard

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 21:10:30 +01:00
Jose MartinezandClaude Sonnet 4.6 c171ebee5f fix: remove unsupported interfaces_wan1_enabled from device_management_interface
El campo no está expuesto en el provider CiscoDevNet/meraki v1.9.0.
Solo se usan los campos de IP estática soportados por el recurso.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 21:02:55 +01:00
Jose MartinezandClaude Sonnet 4.6 4a2eeb6c17 feat: add Warm Spare (HA) with VIP for MX appliances
Configura meraki_appliance_warm_spare con VIP flotante en WAN1:
  - Spare: BCN01-F04-MX02 (serial resuelto por nombre)
  - Uplink mode: virtual
  - VIP WAN1: 213.229.159.148

La IP de salida del tráfico será siempre la VIP (.148),
independientemente de qué MX esté activo.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 20:59:20 +01:00
Jose MartinezandClaude Sonnet 4.6 5d0f043503 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>
2026-03-26 20:52:29 +01:00
Jose MartinezandClaude Sonnet 4.6 7fdb3e956e feat: configure static WAN1 IP for primary and spare MX
Añade recurso meraki_device_management_interface para configurar
IP estática en el puerto WAN1 de ambos firewalls MX:
  - Primary: 213.229.159.145/28 (255.255.255.240), GW 213.229.159.147
  - Spare:   213.229.159.146/28 (255.255.255.240), GW 213.229.159.147

Los seriales del MX deben reemplazarse en wan.auto.tfvars.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 20:50:14 +01:00
Jose MartinezandGitHub Enterprise f53df53cf8 Merge pull request #14 from its-corp/feature/bcn01-ap-internet-rule
feat: allow GUEST VLAN (101) internet access
2026-03-26 11:50:50 +01:00
Jose MartinezandClaude Sonnet 4.6 1dd08e5a28 feat: allow GUEST VLAN (101) internet access
Añade regla de firewall L3 en posición 3 para permitir
que los clientes de la VLAN GUEST (10.2.40.0/21) accedan
a internet.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 11:48:25 +01:00
Jose MartinezandGitHub Enterprise bf2210db21 Merge pull request #13 from its-corp/feature/bcn01-sync-dashboard-changes
fix: add encryption_mode for PSK SSIDs (EQT-GUEST)
2026-03-26 11:42:14 +01:00
Jose MartinezandClaude Sonnet 4.6 89a8506f8b fix: add encryption_mode for PSK SSIDs (EQT-GUEST)
La API de Meraki requiere encryption_mode="wpa" cuando auth_mode="psk",
además de wpa_encryption_mode. Sin este campo la API devuelve el error
"Pre-shared key mode requires a valid encryption mode (wep, wpa)".

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 11:38:39 +01:00
Jose MartinezandGitHub Enterprise e12329899a Merge pull request #12 from its-corp/feature/bcn01-sync-dashboard-changes
feat(BCN01-LAB): añadir SSID EQT-GUEST con WPA2 PSK
2026-03-26 11:33:58 +01:00
Jose Martinez b110644466 feat(BCN01-LAB): actualizar main.tf del site 2026-03-26 11:32:22 +01:00
Jose MartinezandClaude Sonnet 4.6 314f1c5391 fix: psk no puede usar var. en tfvars, se inyecta via TF_VAR
- ssids.auto.tfvars: eliminada referencia var.wifi_password_psk (inválida
  en ficheros tfvars)
- main.tf: psk usa each.value.psk si está definido, sino cae en
  var.wifi_password_psk (TF_VAR_wifi_password_psk desde GitHub Secrets)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 11:22:08 +01:00
Jose Martinez 33f9452bed feat(BCN01-LAB): añadir SSID EQT-GUEST con WPA2 PSK 2026-03-26 11:17:11 +01:00
Jose MartinezandGitHub Enterprise b332b15871 Merge pull request #11 from its-corp/feature/bcn01-sync-dashboard-changes
Agregando regla para que los APs puedan salir a internet
2026-03-26 07:25:26 +01:00
Jose Martinez ed5a2f2728 Agregando regla para que los APs puedan salir a internet 2026-03-26 07:23:48 +01:00
Jose MartinezandGitHub Enterprise d0566dbaf3 Merge pull request #10 from its-corp/feature/bcn01-sync-dashboard-changes
Feature/bcn01 sync dashboard changes
2026-03-26 07:16:46 +01:00
Jose MartinezandClaude Sonnet 4.6 6dc629ea18 feat: soporte port_range con listas y combinaciones ("2,3", "1-3,5")
- _expand_range ahora procesa segmentos separados por coma, cada uno
  puede ser un puerto único o un rango numérico (1-48).
  Ejemplos: "2,3" -> ["2","3"] | "1-3,5,47" -> ["1","2","3","5","47"]
- switch.auto.tfvars: puertos 2 y 3 de eqt-lab-st01-sw01 consolidados
  en una sola entrada con port_range = "2,3"

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 07:09:12 +01:00
Jose MartinezandClaude Sonnet 4.6 a1068c831d feat(BCN01-LAB): puerto 2 eqt-lab-st01-sw01 como AP trunk
- Añadido puerto 2 de eqt-lab-st01-sw01 como trunk AP con VLAN nativa
  108 (APs) y tageadas 100 (ACCESS) y 101 (GUEST), igual que puerto 3

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 07:07:38 +01:00
Jose MartinezandGitHub Enterprise 3d5d5f0481 Merge pull request #9 from its-corp/feature/bcn01-sync-dashboard-changes
Feature/bcn01 sync dashboard changes
2026-03-26 07:02:21 +01:00
Jose Martinez 76af4e256a ci: re-trigger plan with fixes 2026-03-26 06:48:14 +01:00
Jose Martinez 380c8adea8 ci: re-trigger apply with fix 2026-03-26 06:46:43 +01:00
Jose Martinez fb56dc23c4 ci: re-trigger apply with fix 2026-03-26 06:44:47 +01:00
Jose MartinezandClaude Sonnet 4.6 7cb7c22b5b fix(bcn01-lab): corregir errores de apply en VLAN 111 y SSID EQT-CORPO
- meraki_appliance_vlan: filtrar VLANs sin subnet (if v.subnet != null)
  para que VLAN 111 WAN (L2-only) no se pase a la API del MX, que exige
  CIDR en el campo subnet.
- meraki_wireless_ssid: pasar wpa_encryption_mode = null cuando
  auth_mode = "open", ya que la API Meraki rechaza modos WPA con auth
  abierta. OWE/Enhanced Open se negocia a nivel beacon y no se expone
  como atributo API.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 06:32:39 +01:00
Jose MartinezandGitHub Enterprise 551b755b2b Merge pull request #8 from its-corp/feature/bcn01-sync-dashboard-changes
feat(BCN01-LAB): sync manual Dashboard changes to Terraform
2026-03-26 06:28:41 +01:00
Jose Martinez 7378e9977c feat(BCN01-LAB): puerto AP trunk y VLAN 111 WAN sin L3
- Puerto 3 eqt-lab-st01-sw01: trunk, native 108 (APs), tagged 100+101
- VLAN 111 WAN sin subnet ni appliance_ip (switching puro)
- subnet/appliance_ip pasan a ser opcionales en el módulo
2026-03-25 23:07:09 +01:00
Jose Martinez f55a54064d fix: usar meraki_network_devices y nombres correctos de recursos
- data meraki_devices → data meraki_network_devices
- meraki_networks_switch_settings → meraki_switch_settings
- meraki_networks_switch_stacks_routing_interfaces → meraki_switch_stack_routing_interface
- switch_named_port_configs vuelve a usar switch_name (lookup dinámico)
2026-03-25 18:33:50 +01:00
Jose Martinez c86569436b feat(BCN01-LAB): sync manual Dashboard changes to Terraform
- Management VLAN switches → 109
- Puerto 47 stack: trunk, native VLAN 109
- SVI stack bcn01-lab-stack01: VLAN 109, 10.2.55.2/24, GW 10.2.55.1
- MX puerto 7: trunk, native VLAN 109
- Firewall: allow MANAGEMENT → internet (primera regla)
- Puerto 1 eqt-lab-st01-sw01: VLAN 110 (SERVERS)
2026-03-25 18:24:47 +01:00
Jose MartinezandClaude Sonnet 4.6 88ae4a7574 chore: ignorar carpeta docs/ en git
La documentacion (HLD, LLD) se almacena en docs/ localmente
pero no se versiona en el repositorio.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 12:55:22 +01:00
Jose MartinezandClaude Sonnet 4.6 67268df12d fix: correct stack name to bcn01-lab-stack01 (matches Meraki Dashboard)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 09:05:17 +01:00
Jose MartinezandClaude Sonnet 4.6 73497c1b49 fix: correct stack name typo bcn01 -> bnc01
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 08:59:16 +01:00
Jose MartinezandClaude Sonnet 4.6 418b0e94f4 feat: configure port 5 of bcn01-lab-stack01 to VLAN 101 (GUEST)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 08:55:13 +01:00
Jose MartinezandClaude Sonnet 4.6 c6343d977e feat: add switch stack port config with dynamic serial resolution
- Add data source meraki_switch_stacks to resolve member serials by stack name
- Add switch_stack_port_configs variable: specify stack_name + port_range
  instead of individual switch serials
- Terraform applies port_range to ALL members of the stack automatically
- Merge switch_port_configs and switch_stack_port_configs into all_ports local
- Add example for bcn01-lab-stack01 (2x48p) in switch.auto.tfvars

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 08:42:48 +01:00
Jose MartinezandClaude Sonnet 4.6 16c09f8cc5 docs: fix comments - Group Policies en switches no asignan VLAN, es estatica en el puerto
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 09:50:26 +01:00
Jose MartinezandClaude Sonnet 4.6 711dfa79bf docs: add APs port example in switch.auto.tfvars
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 12:13:14 +01:00
Jose MartinezandClaude Sonnet 4.6 dcc7398355 docs: add port config examples (802.1X, impresoras, uplink) in switch.auto.tfvars
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 12:11:02 +01:00
Jose MartinezandClaude Sonnet 4.6 775dbce9a8 feat: support port ranges in switch_port_configs (e.g. port_range = "1-24")
Replace port_id with port_range in variable; add local to expand ranges
into individual port entries before creating meraki_switch_port resources.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 11:37:11 +01:00
Jose MartinezandClaude Sonnet 4.6 67420fc099 feat: change access_policy_type to Hybrid authentication (802.1X + MAB fallback)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 11:27:25 +01:00
Jose Martinez 0536a2f1b0 trigger: re-run apply with DOT1X-CORPO name 2026-03-18 11:24:36 +01:00
Jose Martinez 4500466248 Merge branch 'feature/switch-dot1x' 2026-03-18 11:19:21 +01:00
Jose MartinezandClaude Sonnet 4.6 cc5c3615b0 fix: rename access policy 802.1X-CORPO to DOT1X-CORPO (Meraki naming rules)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 11:16:02 +01:00
Jose MartinezandGitHub Enterprise 9cccd25e85 Merge pull request #7 from its-corp/feature/switch-dot1x
Feature/switch dot1x
2026-03-18 11:14:50 +01:00