
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:
- O instalador deixa listo o servidor (a máquina do profesor).
- 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

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)

Este paso é o motor de todo. Fai, por esta orde:
- Copia os ficheiros de Piztu a
/opt/piztu. - 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.localnon funciona).alsa-utils— monitor de ruído integrado.curl,gnupg— para engadir o repositorio de SaltProject.
- Engade o repositorio de SaltProject e activa
salt-masterneste servidor. Osminionsdos clientes instálanse despois, desde Piztu. - 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)

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

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-masterno servidor (só Linux). - (B)
salt-minionen 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
