IaC · Infraestructura · Módulos · Declarativo
OpenTofu — Infraestructura como código¶
La herramienta que define toda la infraestructura de SmallCountry de forma declarativa. Crearía bridges, VLANs, LXCs, volúmenes ZFS (sistema de archivos con integridad de datos) y reglas de firewall desde archivos de código versionados en Forgejo. Sustituiría a Terraform (es un fork libre tras el cambio de licencia de HashiCorp).
Como usuario¶
No se interactúa con OpenTofu. Sería la herramienta que materializa la infraestructura desde el código.
Integración con otros servicios de SmallCountry¶
| Servicio | Relación |
|---|---|
| Proxmox VE | OpenTofu se conecta a la API (interfaz de programación) de Proxmox para crear y gestionar LXCs, redes y almacenamiento |
| Forgejo | Los módulos de OpenTofu están versionados en Forgejo |
| Forgejo Actions | El CI/CD (integración y despliegue continuo) ejecuta tofu plan → tofu apply |
| Ansible | OpenTofu crea el LXC (contenedor ligero de Proxmox), Ansible provisiona el software dentro |
| Semaphore | Puede ejecutar planes de OpenTofu desde la interfaz web |
Para el administrador (diseño previsto)
| Ejecución | Forgejo Actions (CI/CD) |
| Acceso | vía Ansible LXC (130) o code-server (142) |
| Impacto | 🔴 Crítico — sin OpenTofu no se puede crear ni modificar infraestructura |
Comandos: tofu plan, tofu apply, tofu state list. El archivo de estado (la memoria de la infraestructura) se almacena en backend autoalojado con bloqueo.
Para el arquitecto (diseño previsto)
Módulos principales¶
| Módulo | Función |
|---|---|
modules/proxmox/ |
Bridges, VLANs, firewall del datacenter |
modules/lxc/ |
Creación de LXCs con recursos y redes |
modules/zfs/ |
Datasets y volúmenes ZFS |
Cada servicio tiene su propio módulo (modules/nextcloud/, modules/immich/, etc.). Patrón: tofu plan → snapshot ZFS → tofu apply → Ansible provisiona → verify.
| Componente | Path |
|---|---|
| Módulos | modules/ en infra-core/ |
| Repo Forgejo | infra-core/ |
| Ficha | docs/fichas/programas/opentofu.md |