REBELION_EN_LA_GRANJA/docs/requisitos.md
s1to 74bfbe9437 Rebelión en la granja — investigación y laboratorio de dispositivos
Investigación sobre granjas de dispositivos y automatización completa para
levantar un laboratorio Android sobre un chasis de blades Debian.

Conclusión que ordena el repositorio: el cuello de botella nunca fue el
cómputo sino la identidad. Desde que la atestación de dispositivo pasó de
estadística a criptográfica, un servidor no puede hacerse pasar por un
teléfono — le falta una clave grabada en fábrica que ningún software produce.

Contenido:

- 01_investigacion/ — capa de identidad (verificación telefónica, eSIM,
  reputación de IP, atestación por hardware, correlación entre cuentas),
  mercado y players, stack técnico, marco legal en la UE
- 02_device_lab/ansible/ — Ansible para 16 blades: preflight de solo lectura
  que identifica el hardware por DMI, despliegue de redroid en Docker y
  control de flota por adb. Solo ansible.builtin, sin colecciones externas
- docs/ — requisitos, costes y repaso de seguridad con 11 hallazgos
- 03_charla/ — guion para HackMadrid / Hackmeeting València

Estado: la automatización está escrita pero SIN ejecutar contra hardware.
YAML validado, plantillas renderizadas en ambos modos de red y fleet.sh
comprobado con bash -n. El modelo de blade sigue sin confirmar.
2026-08-08 19:42:14 +02:00

140 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Requisitos
Todo lo que hace falta para levantar la granja. Lo eléctrico y lo físico está primero a propósito:
es lo que descarta el proyecto antes que ninguna consideración técnica.
---
## 1 · Eléctrico y físico — lee esto primero
| Requisito | Detalle |
|---|---|
| **Potencia contratada** | El chasis completo tira **2,63,6 kW**. Un domicilio español típico tiene **3,45 kW contratados**: no da. Hace falta subir a 6,9 kW o más, o un local con suministro trifásico. |
| **Circuito** | Dedicado. Nada de compartir con el resto de la instalación. |
| **Tensión y conectores** | Dell recomienda **208240 V** para el M1000e. España a 230 V vale. Fuentes con conectores **C19/C20**, no los C13 normales. |
| **Espacio** | **10U** de rack, con raíles capaces de aguantar el peso. |
| **Peso** | **179 kg cargado.** El rack tiene que soportarlo y el suelo también. |
| **Refrigeración** | 2,6 kW de consumo son 2,6 kW de calor: como dos radiadores eléctricos a tope. Necesita extracción real, no una ventana. |
| **Ruido** | 7085 dB con los 9 ventiladores en marcha. **No es una máquina de vivienda.** |
> **Esto es lo que decide.** Si no hay sitio con potencia, extracción y tolerancia al ruido, el
> resto de este documento no importa: la vía es el piloto en el sobremesa.
---
## 2 · Hardware
### El chasis
Dell PowerEdge M1000e — ver [hardware_m1000e.md](../02_device_lab/hardware_m1000e.md).
- 16 blades de media altura (8 arriba + 8 abajo)
- Al menos 2 fuentes (mejor 3+3 en redundancia)
- Módulos de I/O FlexIO con conectividad entre blades y hacia la LAN
- CMC accesible
### Por blade
| | Mínimo | Recomendado |
|---|---|---|
| RAM | 8 GB (→ 3 instancias) | **32 GB (→ 14 instancias)** ← la palanca del proyecto |
| Disco | 1 disco, 60 GB libres | SSD; ~10 GB por instancia con margen |
| CPU | x86_64 con `sse4_2`, `ssse3`, `popcnt` | Cualquier Xeon de M620 en adelante |
| Red | 1 GbE por el FlexIO | 10 GbE si se va a mover mucho APK |
**Sin verificar todavía**: el modelo exacto de blade. Lo resuelve `playbooks/preflight.yml`
leyendo el DMI — no hace falta ir a mirar el frontal. Si salen **M610** (Xeon 20092011), hay
riesgo real de que las imágenes x86_64 de Android no arranquen; el preflight lo dice antes de
gastar tiempo.
### Nodo de control
El sobremesa actual (16 cores, 62 GB, Debian 12) sobra. Solo necesita SSH a los blades.
---
## 3 · Software
### En los blades
- **Debian 12 bookworm** instalado y arrancando
- Kernel con `binder_linux.ko` — el estándar de Debian lo trae
- SSH accesible
- Nada más: Docker y el resto lo pone Ansible
### En el nodo de control
```bash
sudo apt install ansible
```
Sin colecciones externas: todo el código usa solo `ansible.builtin`.
### Se descarga durante el despliegue
- Docker CE desde `download.docker.com`
- Imagen `redroid/redroid:13.0.0-latest` desde Docker Hub (~1 GB, una vez por blade)
- Paquetes de `deb.debian.org`
---
## 4 · Red
| | |
|---|---|
| **Salida a internet** desde los blades | O un mirror local de Docker y Debian |
| **VLAN aislada** para la granja | No opcional — ver [seguridad.md](seguridad.md) S1 y S3 |
| **VLAN de gestión** aparte | Para CMC e iDRAC, separada de la anterior |
| SSH del control a los blades | Puerto 22 |
| adb del coordinador a los nodos | 5555+ , solo dentro de la VLAN de granja |
| Reserva DHCP | Solo en modo `macvlan`: un rango para los Android, o habrá colisiones |
---
## 5 · Accesos
- Clave SSH del nodo de control a los 16 blades
- sudo o root en los blades
- **Credenciales del CMC** — y cambiarlas si siguen siendo las de fábrica ([seguridad.md](seguridad.md) S2)
- Acceso físico para el primer arranque y para meter RAM
---
## 6 · Conocimientos y tiempo
| | |
|---|---|
| Ansible | Nivel usuario: editar inventario y lanzar playbooks. No hace falta escribir roles. |
| Docker | Poco: los contenedores los gestiona Ansible |
| Redes | **Aquí sí hace falta**: VLANs, macvlan y el switching del chasis es la parte que más muerde |
| Dell OME/CMC | Básico: encender blades, mirar consumo, actualizar firmware |
Tiempo estimado, con el hierro ya en su sitio y encendido:
- Instalar Debian en 16 blades: **1 día** (menos con PXE)
- Red y VLANs: **medio día**
- Ansible y despliegue: **2 horas** (la automatización ya está escrita)
- Ajuste y verificación: **medio día**
Mantenimiento posterior: 24 h al mes.
---
## 7 · Checklist antes de empezar
**Bloqueantes** — si alguno falla, el proyecto no sale:
- [ ] Sitio con potencia suficiente, extracción y tolerancia al ruido
- [ ] Alguien asume la factura eléctrica (ver [costes.md](costes.md))
- [ ] Rack de 10U que aguante 179 kg
- [ ] Los blades arrancan y el CMC responde
**Antes de encender**:
- [ ] Credenciales de CMC e iDRAC cambiadas
- [ ] VLANs de granja y gestión, separadas
- [ ] `playbooks/preflight.yml` en verde en todos los blades
**Antes de tocar el chasis**:
- [ ] El piloto de un nodo funciona en el sobremesa — valida el pipeline entero sin encender 2 kW