05-sep: [infra] configurar Raspberry Pi y documentar flota
This commit is contained in:
80
docs/raspberry_pi.md
Normal file
80
docs/raspberry_pi.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# Raspberry Pi del laboratorio
|
||||
|
||||
## Objetivo
|
||||
|
||||
Centralizar la configuracion, el acceso y el mantenimiento de una flota de Raspberry Pi. La primera unidad es `minipc`; el mismo procedimiento debe servir para las cinco unidades previstas.
|
||||
|
||||
## Inventario actual
|
||||
|
||||
| Campo | Valor |
|
||||
|---|---|
|
||||
| Hostname | `minipc` |
|
||||
| Sistema | Raspbian GNU/Linux 13 (trixie) |
|
||||
| Ethernet | `192.168.50.187` |
|
||||
| Wi-Fi | `192.168.50.251` |
|
||||
| Usuario operativo | `pi` |
|
||||
| Codigo | `/home/pi/minipc/` |
|
||||
| Servicio bot | `pi-bot.service` |
|
||||
| Servicio tunel | `autossh-tunel.service` |
|
||||
| Zona horaria | `Europe/Madrid` |
|
||||
| Teclado | Espanol (`es`) |
|
||||
|
||||
No se documentan contrasenas, tokens ni claves privadas en este fichero.
|
||||
|
||||
## Comando unico de diagnostico
|
||||
|
||||
En la Raspberry:
|
||||
|
||||
```bash
|
||||
bash /home/pi/minipc/vigilancia/raspberry_info.sh
|
||||
```
|
||||
|
||||
El comando muestra identidad, red, teclado, locale, hora, servicios y recursos sin revelar secretos.
|
||||
|
||||
Desde el PC, pasando por el VPS:
|
||||
|
||||
```powershell
|
||||
ssh -i C:\Users\juanm\Documents\GitHub\contabo root@185.187.169.109 "ssh -i /root/.ssh/pi_deploy -p 2222 pi@127.0.0.1 'bash /home/pi/minipc/vigilancia/raspberry_info.sh'"
|
||||
```
|
||||
|
||||
## Configuracion aplicada en minipc
|
||||
|
||||
```bash
|
||||
sudo raspi-config nonint do_configure_keyboard es
|
||||
sudo localectl set-x11-keymap es pc105
|
||||
sudo locale-gen es_ES.UTF-8
|
||||
sudo localectl set-locale LANG=es_ES.UTF-8
|
||||
sudo timedatectl set-timezone Europe/Madrid
|
||||
sudo timedatectl set-ntp true
|
||||
```
|
||||
|
||||
El cambio de idioma puede requerir cerrar la sesion y volver a entrar. El teclado de consola queda definido en `/etc/default/keyboard` con `XKBLAYOUT="es"`.
|
||||
|
||||
## Conectividad
|
||||
|
||||
- Ethernet es la ruta preferida y usa la IP `192.168.50.187`.
|
||||
- Wi-Fi queda disponible como respaldo en `192.168.50.251`.
|
||||
- El tunel inverso publica SSH de la Pi en el VPS como `127.0.0.1:2222`.
|
||||
- El acceso remoto usa la clave privada del VPS configurada para el tunel; nunca se copia ni documenta aqui.
|
||||
- Si la IP cambia, consultar `hostname -I` en la Pi y actualizar el inventario.
|
||||
|
||||
## Despliegue
|
||||
|
||||
La Pi no tiene Git operativo para este flujo. El despliegue se hace por el VPS y el tunel inverso:
|
||||
|
||||
1. Copiar el fichero al VPS.
|
||||
2. Copiarlo por SSH a `pi@127.0.0.1:2222`.
|
||||
3. Validar con `python3 -m py_compile` si es Python.
|
||||
4. Reiniciar el servicio correspondiente.
|
||||
5. Verificar `systemctl is-active` y los logs.
|
||||
|
||||
## Escalado a cinco Raspberry
|
||||
|
||||
Cada unidad debe tener un registro con hostname, MAC, IP Ethernet, IP Wi-Fi, servicios, funcion y ubicacion. Se recomienda:
|
||||
|
||||
- Reservas DHCP por MAC para evitar cambios de IP.
|
||||
- Ethernet como red principal.
|
||||
- Un hostname unico por unidad: `minipc-01`, `minipc-02`, etc.
|
||||
- Un servicio `autossh-tunel` por unidad con un puerto de tunel distinto.
|
||||
- Una clave SSH de despliegue independiente por unidad.
|
||||
- Un script de diagnostico identico en todas las unidades.
|
||||
Reference in New Issue
Block a user