4. Nivel 0 y Espejo Local de Dependencias¶
Reconstruir todo desde cero es el principio más exigente del sistema. Para que sea posible sin internet, hace falta un "kit de rescate" físico y tres almacenes locales de dependencias. Mientras estos componentes funcionen, SmallCountry puede reconstruirse aunque el resto del mundo esté desconectado.
Nivel 0 — Rescue Boat¶
Dispositivo físico (SSD externo o USB de alta capacidad) que contiene:
| Recurso | Contenido |
|---|---|
| Binarios esenciales | OpenTofu, Ansible, git, curl, jq |
| Estado de infraestructura | .tfstate de OpenTofu |
| Script de arranque | bootstrap.sh |
| Credenciales mínimas | Claves SSH, tokens API (interfaz de programación) |
| Documentación offline | Copia estática de docs.sc con runbooks |
Se actualiza trimestralmente y se guarda en ubicación física separada del servidor.
Espejo Local de Dependencias¶
1. Apt-Cacher-NG — proxy de paquetes¶
Caché transparente de paquetes Debian/Proxmox. Cada apt install pasa por él. Si internet cae, los paquetes ya descargados se siguen sirviendo a velocidad local.
2. Forgejo Registry OCI — imágenes Docker¶
Todas las imágenes se cachean localmente. Flujo: Docker Hub → Forgejo Registry → Trivy + Cosign + SBOM (lista de componentes de software) → cuarentena → disponible para LXCs (contenedores ligeros de Proxmox). Los nodos de producción NUNCA acceden a Docker Hub.
3. Espejo PyPI — paquetes Python¶
Dependencias de Ansible, code-server y otras herramientas cacheadas localmente. Mismo principio que APT.
Reconstrucción offline¶
Rescue Boat conectado
→ bootstrap.sh instala OpenTofu + Ansible desde binarios locales
→ OpenTofu recrea infraestructura (bridges, VLANs, LXCs, ZFS)
→ Ansible provisiona cada LXC:
apt install → desde Apt-Cacher-NG (offline)
docker pull → desde Forgejo Registry (offline)
pip install → desde espejo PyPI (offline)
→ Restauración de datos desde PBS (backups locales)
→ Verificación funcional: healthchecks, consultas BD
→ RTO objetivo: < 15 minutos
Mantenimiento¶
| Componente | Frecuencia | Verificación |
|---|---|---|
| Rescue Boat | Trimestral | Simulacro: arrancar Proxmox limpio desde Rescue Boat |
| Apt-Cacher-NG | Continuo (transparente) | Automático |
| Forgejo Registry | Nocturno | Renovate + cuarentena |
| Espejo PyPI | Bajo demanda | Semaphore |
Relaciones con otros mecanismos¶
- Modo de Emergencia: el Nivel 0 es el último recurso cuando incluso el Modo de Emergencia no es suficiente
- Cuarentena de Artefactos: el registro OCI implementa la cuarentena de imágenes
- Contratos de Datos: mismo principio de soberanía aplicado a dependencias de software
El Nivel 0 y el Espejo Local son la diferencia entre "tengo backups" y "puedo reconstruir". Lo primero es necesario. Lo segundo es soberanía.