Saltar a contenido

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

flowchart TD
    RescueBoat([Rescue Boat conectado]) --> Bootstrap[1. bootstrap.sh\nInstala OpenTofu y Ansible\ndesde binarios locales]
    Bootstrap --> Recrea[2. OpenTofu recrea\ninfraestructura]
    Recrea --> C1[Bridges, VLANs\nLXCs, volúmenes ZFS]
    C1 --> AnsibleProv[3. Ansible provisiona\ncada LXC]
    AnsibleProv --> D1[apt install desde\nApt-Cacher-NG offline]
    AnsibleProv --> D2[docker pull desde\nForgejo Registry offline]
    AnsibleProv --> D3[pip install desde\nespejo PyPI offline]
    D1 --> Restauracion[4. Restauración de datos\ndesde PBS local]
    D2 --> Restauracion
    D3 --> Restauracion
    Restauracion --> Verificacion[5. Verificación funcional]
    Verificacion --> F1[Healthchecks HTTP]
    F1 --> F2[Consultas de integridad BD]
    F2 --> RTO([RTO objetivo: menor a 15 min])

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


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.


Secciones relacionadas