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.
140 lines
4.9 KiB
Markdown
140 lines
4.9 KiB
Markdown
# 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,6–3,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 **208–240 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** | 70–85 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 2009–2011), 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: 2–4 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
|