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.

