Instalar Piztu na túa aula: guía metodolóxica paso a paso

Mapa interactivo dunha aula en Piztu

Instalar Piztu non é só «executar un .deb». É preparar unha aula enteira para que un único ordenador —o do profesorado— poida acender, bloquear, repartir traballo e recoller evidencias de vinte equipos á vez.

Por iso a instalación ten dúas metades ben diferenciadas:

  1. O instalador deixa listo o servidor (a máquina do profesor).
  2. O apartado «Aula» dentro de Piztu deixa listos os clientes e describe a aula.

A orde importa, e cada paso apóiase no anterior. Nesta entrada explícase o porqué de cada decisión, non só o como.

1 · Antes de tocar nada: pensar a aula como un conxunto

Piztu asume un modelo moi concreto de aula:

  • Un servidor, que é o ordenador desde o que se dá clase. Aquí instálase Piztu e o salt-master (o «cerebro» que manda ordes ao resto).
  • N clientes, os equipos do alumnado. Nestes non se instala Piztu: só reciben unha clave SSH e un salt-minion.

Nomear os equipos

O instalador suxire un esquema correlativo:

Papel Nome
Servidor tux0
Clientes tux01, tux02, … tux22

En cada equipo edítanse os dous ficheiros e reiníciase:

sudo nano /etc/hostname
sudo nano /etc/hosts     # o mesmo nome nos dous
sudo reboot

Por que importa metodoloxicamente: Piztu xera o inventario a partir dun prefixo (tux) e un número (22). Se os nomes son coherentes, describir a aula redúcese a escribir dous datos. Se non o son, hai que ir equipo por equipo. O esquema é unha suxestión: máis adiante Piztu tamén permite engadir máquinas con nomes arbitrarios («Descubrir a rede»), pero o camiño rápido é este.

Permisos sudo sen contrasinal (servidor e clientes)

En todos os equipos:

sudo visudo
# engadir ao final:
usuario ALL=(ALL) NOPASSWD:ALL
  • No servidor: o usuario que abre Piztu precísao para instalar e xestionar salt-master.
  • Nos clientes: é o usuario co que Ansible/Salt se conectan por SSH para executar as ordes (acender, bloquear, copiar ficheiros…).

Sen isto, cada acción sobre a aula pediría un contrasinal por equipo: 22 contrasinais para acender a clase. O modelo de Piztu é aula administrada: a comodidade compénsase asumindo que a rede da aula é de confianza.

SSH nos clientes

Cada cliente necesita o servidor SSH activo:

sudo apt update && sudo apt install openssh-server

En /etc/ssh/sshd_config deben estar activas:

Port 22
PubkeyAuthentication yes
PasswordAuthentication yes   # só a primeira vez, para repartir a clave

Idea clave: PasswordAuthentication só fai falta unha vez, no momento de distribuír a clave compartida. A partir de aí Piztu entra con clave e xa se podería desactivar.

2 · O instalador de Piztu

Pantalla de benvida do instalador de Piztu

O instalador é unha aplicación gráfica que só actúa sobre o servidor. Necesita permisos de administrador (pídeos automaticamente con pkexec; se non está dispoñible, execútase desde o terminal con sudo ./piztu-installer). Necesita root porque instala en /opt/piztu, engade paquetes con apt, activa salt-master e crea accesos directos do sistema.

Podes pechalo e continuar máis tarde: os pasos son independentes.

Paso 0 — Benvida

Non instala nada. É un recordatorio dos tres requisitos anteriores (nomes, sudo, SSH). Metodoloxicamente é o paso máis importante: se se ignora, todo o demais falla máis adiante e de forma confusa.

Paso 1 — Instalación (obrigatorio)

Paso de instalación do instalador de Piztu en marcha

Este paso é o motor de todo. Fai, por esta orde:

  1. Copia os ficheiros de Piztu a /opt/piztu.
  2. Instala as dependencias do sistema:
    • ansible, sshpass, openssh-client — execución de ordes nos clientes.
    • wakeonlan — acender equipos apagados.
    • avahi-daemon, avahi-utils, libnss-mdns — resolución de nomes .local (sen isto, ssh tux01.local non funciona).
    • alsa-utils — monitor de ruído integrado.
    • curl, gnupg — para engadir o repositorio de SaltProject.
  3. Engade o repositorio de SaltProject e activa salt-master neste servidor. Os minions dos clientes instálanse despois, desde Piztu.
  4. Axusta permisos dos scripts (lanzar_piztu.sh, piztu, tao-helper…).

Se a instalación en bloque falla por un paquete ausente, reintenta paquete a paquete para non abortar todo por unha soa dependencia.

Paso 2 — LAMP (opcional)

Instala Apache + MariaDB + PHP no servidor. Omíteo se xa tes un servidor web. A súa única razón de ser é aloxar o seguinte paso (File Browser). Pide o contrasinal de root de MySQL, que nunca vai escrito no código: pásase ao playbook nun ficheiro temporal con permisos 600.

Paso 3 — File Browser (opcional)

Paso de File Browser co aviso dos dous usuarios

File Browser é a peza que permite ao alumnado subir e descargar ficheiros desde o navegador. Require un servidor web activo (o do paso anterior ou un propio).

Aquí hai unha confusión clásica que convén entender ben. Créanse dous usuarios distintos:

Usuario Onde se escribe Que é
admin aquí, no instalador A conta do servidor de ficheiros. Garda os traballos de todo o alumnado.
director despois, dentro de Tao A conta persoal do profesor para xestionar Tao (materias, alumnado).

Non se poden fusionar: viven en sitios distintos e fan cousas distintas. O contrasinal de admin pide un mínimo de 12 caracteres. Ao rematar, o instalador tamén activa o servizo piztu-historial (rexistro de quen usou cada equipo e cando).

Paso 4 — Completado

Pantalla final do instalador coa creación de accesos directos

Crea os accesos directos (menú Educación → Piztu e escritorio). Aquí remata o instalador, pero a aula aínda non está configurada. O propio texto do instalador dío: para engadir equipos, distribuír a clave e xerar o inventario, «abre Piztu e usa o seu propio asistente».

Zona de perigo

A desinstalación é granular e reversible por partes: podes quitar só File Browser, só LAMP, ou Piztu completo. Cada acción é independente e comproba o seu propio estado. É unha decisión de deseño: nada do que instala Piztu queda «pegado» ao sistema sen forma de desfacelo.

3 · O apartado «Aula» dentro de Piztu

Ábrese Piztu e vaise a ⚙ Aula. Este é o asistente que prepara os clientes. Segue esta secuencia (cada paso necesita o anterior):

3.1 · Xerar o inventario

Escríbense tres datos: prefixo (tux), dominio (.local) e número de equipos. Piztu escribe o ficheiro hosts con tux01.local … tuxNN.local. É «describir a aula» nun formulario.

Alternativa para nomes non correlativos: Descubrir a rede. Piztu escanea o porto 22 da rede local e lista as máquinas que atope, aínda que non sigan ningunha convención.

3.2 · Distribuír a clave SSH

Piztu xera unha clave compartida da aula (~/.ssh/id_rsa_piztu_aula) e empúrraa a todos os equipos do inventario. Pídese unha soa vez o usuario e contrasinal SSH dos clientes. A partir de aquí, Piztu entra en todos os equipos sen contrasinal.

Se usaches «Descubrir a rede», cada equipo pode levar o seu propio usuario/contrasinal; o contrasinal só se usa nesa distribución puntual e os equipos onde funciona engádense ao inventario.

3.3 · Configurar Salt

Piztu pon a punto o motor de execución por defecto:

  • (A) salt-master no servidor (só Linux).
  • (B) salt-minion en cada cliente, instalado por SSH coa clave do paso anterior.
  • (C) aceptación automática das chaves dos minions no master.

Antes limpa calquera instalación anterior: parte de cero en cada intento (é idempotente). O enderezo do master dedúcese do nome do servidor + o dominio da aula; só hai que tocar o campo se o master está noutra máquina.

3.4 · Escanear a rede

Piztu conéctase por SSH a cada equipo, detecta os que están acendidos e garda a súa MAC no inventario. Isto é o que despois permite acender a aula por Wake-on-LAN cun só clic.

3.5 · Instalar Tao nos clientes

Despraza Tao (a ferramenta de sesión do alumnado: bloqueo de pantalla, navegador de ficheiros, historial) a /opt/piztu de cada cliente, con acceso directo no menú e no escritorio. Repetible cando entren equipos novos, sen volver ao instalador.

3.6 · Activar módulos

En ⚙ Aula → Módulos actívanse as pezas opcionais: Tao, Xesta (asistente de IA que xera scripts de Ansible/Salt), Pancho (informe equipo→usuario→IP en PDF), o monitor de ruído… Cada módulo pídese e concédeselle permiso no momento en que o profesor o activa.

3.7 · Colocar os equipos no mapa

Por último, arrástranse os equipos sobre a imaxe da aula (a foto de arriba) ata que o mapa reproduza a disposición real da clase. A posición gárdase e xa non hai que repetilo.

4 · Filosofía: por que a instalación é así

  • Intrusión mínima nos clientes. Non se instala Piztu neles: só unha clave e un minion. Todo o «pesado» vive no servidor.
  • A orde constrúe. Inventario → clave → Salt → MACs → Tao. Cada paso asume que o anterior funcionou; saltar un dá erros confusos.
  • Idempotencia. Repetir calquera paso é seguro: limpa e volve facer.
  • Reversibilidade. A «zona de perigo» desfai a instalación por partes.
  • O profesor manda. As credenciais escríbense cada vez, non se gardan «para sempre»; os módulos actívanse a man; nada corre sen consentimento.

Con isto, unha aula de 22 equipos queda gobernable desde unha soa pantalla.

Piztu — Martín Pardiñas · piztu.org · Licenza GPLv3

Scroll ao inicio