Blog

IaC Deployment Lab | Zitadel Inmobiliaria

Diseño e implantación de una infraestructura tecnológica

Infraestructura como Código · Proxmox + Terraform + Ansible

Este proyecto se centra en el diseño y despliegue de un entorno virtualizado sobre Proxmox VE mediante una metodología de Infraestructura como Código (IaC). La solución integra Terraform para el aprovisionamiento automatizado de los recursos de hardware virtual y Ansible para la gestión de configuraciones y el despliegue de servicios, garantizando un entorno escalable, replicable y eficiente.

Descripción

ALCANCE DEL PROYECTO

  • Infraestructura completa desde cero
  • Red segmentada por VLANs
  • Virtualización en Proxmox
  • Despliegue automatizado: Terraform + Ansible
  • WordPress + MariaDB en Docker
  • Monitorización con Zabbix
  • Acceso seguro con Tailscale

Requisitos previos

DEPENDENCIAS Y ENTORNO

  • Servidor físico con Proxmox VE instalado
  • Terraform ≥ 1.6 instalado en el Central-Node
  • Ansible ≥ 2.14 instalado en el Central-Node
  • Par de claves SSH generado en ~/.ssh/id_rsa
  • Cuenta en Tailscale para acceso remoto
  • Acceso a la API de Proxmox (root@pam o usuario con permisos equivalentes)

Arquitectura

El acceso administrativo remoto se realiza a través de Tailscale, sin exponer ningún puerto crítico a internet.

Internet
    │
    ▼
OPNsense (VM 201) — Firewall · DHCP · VLANs · NAT
    │
    ├── VLAN 10 — Management (10.0.10.0/24)
    │       └── VM 200 · Central-Node   10.0.10.200
    │
    ├── VLAN 20 — Servers (10.0.20.0/24)
    │       └── VM 202 · Zabbix         10.0.20.202
    │
    ├── VLAN 30 — DMZ (10.0.30.0/24)
    │       └── VM 203 · WordPress      10.0.30.203
    │
    └── VLAN 40 — Database (10.0.40.0/24)
            └── VM 204 · MariaDB       10.0.40.204

Stack tecnológico

Para llevar a cabo este proyecto, usamos las siguientes tecnologías:

Categoría Tecnología
Hipervisor Proxmox VE
IaC — Aprovisionamiento Terraform (bpg/proxmox provider)
IaC — Configuración Ansible
Firewall / Red OPNsense · VLANs 802.1Q
Web WordPress + Apache · Docker Compose
Base de datos MariaDB 10.11
SSL Let’s Encrypt
Monitorización Zabbix 7.0
Acceso remoto Tailscale (WireGuard)
DNS dinámico Dinahosting
Backup Proxmox Backup + estrategia 3-2-1

Despliegue rápido y reproducible

Este entorno es 100% reproducible a través de nuestro repositorio de GitHub. Aquí el paso a paso para su despliegue:

1. Clonar repositorio

GIT

git clone --recurse-submodules https://github.com/CuerdoG/iac-deployment-lab.git
cd iac-deployment-lab

2. Configurar Terraform

APROVISIONAMIENTO

cd terraform
export TF_VAR_pm_password="tu_contraseña_proxmox"
terraform init
terraform plan
terraform apply

3. Ejecutar playbook de Ansible

CONFIGURACIÓN

ansible-playbook -i inventory.ini playbook.yml

Seguridad

DEFENSA EN PROFUNDIDAD

  • Firewall perimetral (OPNsense): todo el tráfico inter-VLAN pasa por reglas explícitas. Por defecto, todo está bloqueado.
  • Segmentación VLANs: la base de datos solo acepta conexiones desde la DMZ en el puerto de MariaDB.
  • Acceso con Tailscale: sin puertos críticos expuestos a internet.
  • SSL con Let’s Encrypt: todos los servicios web viajan cifrados.
  • Backup Proxmox + Backups 3-2-1: 3 copias, 2 soportes distintos, 1 copia en la nube.

Monitorización

Zabbix monitoriza los siguientes hosts y métricas clave:

Host IP Métricas Estado
Proxmox 192.168.1.220 CPU, RAM Activo
WordPress 10.0.30.203 HTTP, rendimiento Activo
MariaDB 10.0.40.204 Queries, conexiones Activo

Alertas configuradas para: disco > 80%, servicios caídos, CPU sostenida > 85% y timeouts HTTP.