Guida per il tecnico

Guida per il tecnico

Come funziona un laboratorio Nixorium e come gestirlo, dal primo controller alle modifiche di ogni giorno, agli aggiornamenti e al ripristino. Per il tecnico della scuola che conosce PC e reti, ma non Nix.

Per Nixorium 3.12.0

1. Come funziona, in breve

Un laboratorio Nixorium ha tre parti.

  • Il controller. Un PC dell’aula, uno libero oppure quello del docente. Custodisce la configurazione del laboratorio, prepara il sistema di ogni PC e lo distribuisce in rete locale da una cache di pacchetti firmata. Gestisce l’installazione da rete e la vista d’aula, ed è l’unica macchina che ha bisogno di Internet per installare e aggiornare.
  • La configurazione del laboratorio. Un repository Git privato nella home dell’amministratore sul controller, ~/nixorium-deployment. Descrive tutto il laboratorio: quanti PC, la rete, gli account, i programmi e il desktop degli studenti. La scrive il menu al posto tuo, dopo averti mostrato le modifiche.
  • I PC degli studenti. Ognuno si installa una volta dal controller, poi parte dal proprio disco e usa i programmi in locale: se il controller è spento la lezione continua, aspettano solo gli aggiornamenti e la vista d’aula.

Che cosa sta dove:

  • Sul controller: la configurazione del laboratorio con la sua storia, le chiavi private, gli hash delle password, la cache firmata.
  • Su ogni PC, controller compreso: il sistema installato, le versioni precedenti del sistema elencate nel menu di avvio, la home dello studente e i suoi cinque snapshot.
  • Lontano dal controller, se lo fai: il backup (un file cifrato su una chiavetta USB o un repository Git privato) e la passphrase che lo apre.

Gestisci tutto da un menu testuale, Nixorium: entra nel controller come admin e aprilo dalla dock, oppure scrivi nixorium in un terminale. Le aree sono Computers, Installation, Software e Maintenance, più Assistant, facoltativa. Ogni azione che modifica qualcosa mostra un riepilogo e aspetta la tua conferma.

Perché Git? Ogni salvataggio nel menu diventa un commit, e ogni sistema preparato dal controller porta con sé la revisione da cui viene. Un PC è aggiornato quando usa l’ultima revisione salvata: così il menu sa quali PC sono in pari. Git conserva anche la storia delle modifiche e si può copiare in un repository privato come backup.

Tutti i dettagli tecnici: Architettura → Modello del sistema.

2. Prima di iniziare

Ti servono:

  • due PC a 64 bit con UEFI che puoi cancellare: il controller e un primo PC per gli studenti;
  • una chiavetta USB con la ISO ufficiale di NixOS 26.05, Minimal (console testuale) o Graphical (GNOME);
  • Internet sul controller, che deve anche poter raggiungere i server orari su Internet, e una rete in cui i PC si vedono tra loro;
  • per l’installazione da rete, l’avvio da rete UEFI sui PC degli studenti.

Che cosa viene cancellato. L’installazione cancella tutto il disco che confermi, sul controller e su ogni PC. Non ridimensiona Windows e non conserva partizioni su quel disco. Windows su un secondo disco può restare: il menu di avvio lo trova (vedi il doppio avvio). Prima copia altrove quello che ti serve.

Chi deve esserci. Chi custodisce la password dell’amministratore, e qualcuno davanti a ogni PC mentre si installa: l’installer chiede, sullo schermo del PC stesso, quale computer è e quale disco cancellare.

Tre cose da concordare con chi gestisce la rete della scuola:

  • Una sottorete fissa per il laboratorio. Oltre all’indirizzo che ricevono dal DHCP della scuola, il controller e i PC hanno un indirizzo fisso del laboratorio in una sottorete IPv4 privata che scegli tu, per esempio 10.0.0.0/24. Non deve contenere l’indirizzo che il DHCP della scuola dà al controller: le impostazioni rifiutano la sovrapposizione. Una /24 ha 254 indirizzi utilizzabili.
  • L’interfaccia di rete. La procedura guidata propone la scheda del controller; i PC degli studenti di solito non richiedono impostazioni (vedi la sezione 4).
  • Il permesso per l’avvio da rete. L’installazione da rete avvia sul controller un servizio ProxyDHCP insieme al server DHCP della scuola, che continua ad assegnare tutti gli indirizzi: il controller dice soltanto ai PC che chiedono di partire dalla rete dove trovare l’installer. Isolamento delle VLAN, regole sul DHCP o un altro servizio sulle porte UDP 67/69 o TCP 8080 possono bloccarlo. L’avvio da rete richiede il cavo; l’installazione da chiavetta USB funziona anche senza.

3. Installare il controller

Avvia il controller dalla ISO di NixOS in modalità UEFI, con Internet. La ISO Graphical è comoda quando la rete della scuola chiede di autenticarsi dal browser: fallo in Firefox, poi apri il Terminale (ignora “Install NixOS”). Esegui:

curl -fsSL https://nixorium.org/install.sh | bash

Il sito conta gli scaricamenti giornalieri di questo script, solo data e numero (privacy). Lo script propone l’ultima versione stabile (quella predefinita), l’ultima prerelease quando è più recente, e master, poi chiede:

  1. la tastiera, da un breve elenco e applicata subito, così scrivi le password con quella giusta, poi il fuso orario;
  2. i nomi degli account del docente e dello studente (l’amministratore è sempre admin);
  3. tre password, amministratore, docente e studente, ognuna scritta due volte;
  4. il profilo iniziale dei programmi, per esempio Essential o Programming;
  5. il disco.

Non cambia nulla fino al riepilogo del disco, dove scrivi ERASE; se sbagli a scrivere la domanda viene ripetuta, una risposta vuota annulla. Lo script installa il controller e salva la configurazione del laboratorio in ~/nixorium-deployment, già registrata in Git. Togli la chiavetta, scrivi reboot, entra come admin e apri Nixorium. La prima volta mostra l’avvertenza d’uso e chiede se vuoi attivare le statistiche di adozione facoltative, che restano spente se non accetti.

Modalità solo controller. Un controller appena installato parte in modalità solo controller: non ci sono ancora PC degli studenti, quindi la rete del laboratorio, la cache e i servizi di controllo remoto sono spenti e il controller usa solo l’indirizzo del DHCP della scuola. Il laboratorio nasce la prima volta che apri Installation.

4. La rete del laboratorio

Due indirizzi sulla stessa scheda. Ogni macchina continua a usare il DHCP della scuola per indirizzo, gateway e DNS: gli studenti navigano come sempre. Sulla stessa scheda ogni macchina ha anche un indirizzo fisso del laboratorio: la base della sottorete più il suo numero. Con 10.0.0.0/24, pc01 è 10.0.0.1, pc02 è 10.0.0.2 e il controller, pc99 di serie, è 10.0.0.99. La gestione usa solo questi indirizzi fissi: il controller manda gli aggiornamenti e apre la vista d’aula passando da lì, e ogni PC degli studenti accetta SSH soltanto dall’indirizzo di laboratorio del controller. Su un PC degli studenti l’indirizzo fisso resta anche quando nessun server DHCP risponde.

Le impostazioni del laboratorio. La prima volta che apri Installation → Network boot (PXE) o Installation → USB over SSH, un modulo chiede la rete fissa del laboratorio e la lunghezza del prefisso, il numero di PC degli studenti (numerati da pc01), il numero del controller (più alto di quello di ogni PC, 99 di serie), l’indirizzo DHCP attuale del controller e le interfacce. Il menu li salva, crea le chiavi e applica la configurazione al controller, che diventa un controller di laboratorio con il suo indirizzo fisso. Con i PC degli studenti configurati, Change settings non modifica più sottorete, prefisso e numero del controller (codice NETWORK-LOCKED): i PC installati terrebbero i vecchi indirizzi e perderebbero il contatto. Il numero del controller resta fisso, quindi sceglilo una volta sola; sottorete e prefisso si cambiano solo con la procedura guidata qui sotto.

I nomi delle interfacce di rete. Tre impostazioni, in Maintenance → Change settings → Network:

  • Controller network interface: il controller usa sempre questo nome. La procedura guidata propone la scheda che porta il suo gateway; cambialo solo se cambi la scheda del controller.
  • Client computers’ network interface: lasciala vuota, come di serie. Ogni PC degli studenti mette allora l’indirizzo del laboratorio sulla sua scheda Ethernet cablata, qualunque nome abbia: PC di modelli diversi non richiedono nulla. Schede wireless, bridge e dispositivi virtuali non vengono mai scelti. Imposta un nome solo se tutti i PC hanno la scheda con lo stesso nome.
  • Shared fallback interface: la usa il controller quando il suo nome è vuoto. I PC degli studenti la ignorano, a meno che non sia impostato un nome per i client.

Un PC con più schede cablate richiede un’eccezione per quel computer (hostIfaceNames nella configurazione del laboratorio), altrimenti l’indirizzo va sulla prima scheda che si attiva, che può cambiare da un avvio all’altro. Cambiare un’interfaccia può scollegare i PC interessati quando la modifica viene applicata: il riepilogo ti avvisa, quindi controlla i cavi e tieni a portata di mano la console locale.

Wi-Fi. La rete del laboratorio è cablata: un PC non prende mai l’indirizzo del laboratorio su una scheda Wi-Fi, e anche l’avvio da rete e Switch on richiedono il cavo. L’account dello studente non può cambiare connessioni, radio o DNS; il docente e l’amministratore sì, tranne la connessione del laboratorio (nixorium-lab): Nixorium la ripristina all’avvio e a ogni aggiornamento del controller, quindi altri server DNS vanno nella configurazione del laboratorio (Assistant può preparare la modifica).

Spostare il laboratorio su un’altra rete. Con i PC configurati, Maintenance → Change network addressing (oppure nixorium network migrate) porta il controller e ogni PC su una nuova sottorete, per esempio da 10.0.0.0/24 a 10.1.0.0/24; ogni PC mantiene il suo numero. Prima accendi i PC, salva le modifiche in sospeso e ferma l’installazione da rete. Scrivi la nuova rete come indirizzo e prefisso, e il riepilogo elenca l’indirizzo del controller e di ogni PC prima e dopo e controlla che ogni PC risponda (un PC spento blocca la procedura finché non lo accendi o decidi di proseguire senza). Il salvataggio non cambia nessun PC. Poi vengono i due passi di sempre, Apply to controller e Update computers: finché non concludi, il controller risponde su entrambe le reti e ogni PC tiene il suo indirizzo precedente accanto al nuovo, quindi nessuno perde il contatto. La panoramica mostra la modifica in corso (NETWORK-CHANGING) con il suo passo successivo. Finish compare quando ogni PC usa la configurazione salvata e risponde al suo nuovo indirizzo, e Undo funziona in qualsiasi momento prima di allora. Poi ripeti la preparazione dell’installazione da rete: i file preparati contengono l’indirizzo del controller (dettagli).

L’ora. Il controller tiene esatto l’orologio del laboratorio sincronizzandosi con i server orari su Internet, quindi deve poterli raggiungere (UDP 123 in uscita), e dà l’ora solo alla rete del laboratorio, aprendo UDP 123 sulla scheda del laboratorio e da nessun’altra parte. Ogni PC chiede l’ora al controller e a nessun server orario su Internet: un PC con la batteria dell’orologio scarica parte con l’ora giusta anche se non ha Internet, e certificati, date dei file e registri restano corretti. Se il controller non raggiunge Internet, continua comunque a dare la propria ora, a partire da cinque minuti dopo l’avvio. Non c’è niente da configurare: la modifica arriva a ogni PC al suo prossimo aggiornamento e al controller quando lo applichi, e un controller in modalità solo controller mantiene le impostazioni dell’ora che aveva (dettagli).

Che cosa cambia l’installazione da rete, e che cosa lascia. La preparazione costruisce l’installer e il sistema di ogni PC e registra l’indirizzo DHCP attuale del controller; la rete per ora non cambia. Quando la avvii (Invio nel suo riepilogo), il controller registra la sessione, toglie dalla scheda il suo indirizzo fisso del laboratorio e mette a disposizione i file di avvio e la cache firmata sul suo indirizzo DHCP. Un PC che parte dalla rete prende l’indirizzo dal DHCP della scuola, carica l’installer dal controller e scarica il suo sistema dalla cache, verificato con la chiave di firma. Quando fermi l’installazione da rete il controller rimette il suo indirizzo fisso; dopo un’interruzione di corrente fa lo stesso all’avvio. Finché è attiva, le altre operazioni, come gli aggiornamenti e i comandi della vista d’aula, vengono rifiutate con il codice PXE-ACTIVE: fermala quando l’aula è installata. Se il DHCP della scuola dà al controller un nuovo indirizzo, basta ripetere la preparazione (dettagli). Sul PC installato non resta niente di temporaneo: parte con il suo indirizzo DHCP più quello fisso del laboratorio. L’installazione da chiavetta USB non tocca mai l’indirizzo del controller.

Tutti i dettagli tecnici: Architettura → Installazione da rete.

5. Il primo PC degli studenti

Installa un solo PC e controllalo prima degli altri. Ogni schermata di Nixorium mostra il passo successivo come azione Invio evidenziata sopra la barra dei tasti, in rosso quando cancella o sostituisce dati; la barra elenca gli altri tasti.

Avvio da rete. Installation → Network boot (PXE) mostra un passo alla volta: preparare i file, avviare, installare e, se serve, ripristinare la rete. Fai partire il PC dalla rete, con l’avvio da rete UEFI prima del disco. L’installer si apre da solo sul suo schermo, mostra hardware e dischi e chiede quale computer configurato è. Rifiuta un’identità se il suo indirizzo del laboratorio risponde già, ma un indirizzo che tace non è per questo libero: tieni tu un elenco di quale PC è quale. Propone solo dischi con spazio per il sistema più 2 GiB. Nel riepilogo di identità e disco scrivi ERASE. Installa dalla cache del controller, verifica il risultato, poi chiede «Reboot now? [y/N]»: rispondi y, oppure premi Invio per restare nell’installer. Nell’ordine di avvio del PC metti l’avvio da rete dopo il disco, così parte dal proprio disco. Se l’installazione da rete si è interrotta, quella schermata diventa Recover the controller network: dice in parole semplici che cosa ha trovato, e Invio riporta la rete del controller alla normalità senza toccare nessun PC degli studenti.

L’installer sul PC, avviato dalla rete o da USB, mostra tre passi numerati e termina con un blocco «Next» che include l’impronta della chiave SSH del computer: annotala, perché la verifica della chiave che il controller chiede dopo una reinstallazione si può confrontare con essa. L’elenco dei file copiati, gli avvisi del boot loader e le tracce degli strumenti del disco vanno in /tmp/nixorium-install.log; se l’installazione fallisce, la schermata mostra le ultime righe e il percorso del log.

USB over SSH. Usalo quando il PC non può partire dalla rete. Avvia il PC dalla ISO di NixOS (Minimal con 4 GB di RAM o meno), collega il suo cavo (il Wi-Fi con nmtui serve solo all’installazione: il PC installato ha bisogno del cavo prima del riavvio), e nella sua console esegui:

passwd
systemctl is-active sshd
ip -4 -br address
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

Tieni visibile quello schermo. Sul controller scegli Installation → USB over SSH, seleziona il computer e inserisci solo l’indirizzo IPv4 del PC. Il controller legge la chiave SSH del PC senza mandare password e mostra la sua impronta SHA256:. Confrontala con quella sullo schermo del PC e scrivi MATCH: solo allora chiede la password temporanea, che così arriva soltanto al PC che hai davanti. Scegli il disco e conferma il riepilogo. Lascia inserita la chiavetta e conferma il riavvio: il PC riparte dal suo nuovo disco e la chiavetta si toglie dopo quel riavvio; il controller verifica il PC installato al suo indirizzo del laboratorio. Se l’installazione si ferma a metà, la schermata si apre come Resume or close the USB installation: dice se il PC risponde ancora dalla chiavetta USB e se il suo disco è stato toccato, e propone solo le uscite sicure, come Resume the installation o Cancel safely. Per chiudere la voce dopo che il disco è stato scritto devi digitare CLOSE; puoi chiuderla così anche quando il PC non torna dopo il riavvio o l’esito non si può verificare. Il controller torna libero; controlla quel PC, o installalo di nuovo.

Controlla prima di andare avanti:

  • il PC parte dal suo disco e apre il desktop dello studente, e i programmi, la tastiera, lo schermo e le periferiche delle tue lezioni funzionano;
  • entrando nel controller come docente, Classroom view mostra lo schermo del PC;
  • Computers → Computer inventory indica il PC come aggiornato;
  • un file di prova salvato dallo studente sparisce dopo il riavvio e si ritrova negli snapshot (vedi la sezione 7);
  • un aggiornamento da Computers → Update computers va a buon fine.

6. Il resto dell'aula, e il primo backup

Con l’installazione da rete attiva, fai partire dalla rete gli altri PC uno dopo l’altro, scegliendo ogni identità e scrivendo ERASE davanti a ciascuno. Poi ferma l’installazione da rete, che restituisce al controller il suo indirizzo fisso. Per aggiungere PC in seguito, aumenta il numero di computer in Maintenance → Change settings → Computers, applica e ripeti la preparazione dell’installazione da rete.

Poi fai un backup con Maintenance → Back up lab: è ciò che permette a un nuovo controller di prendere in carico l’aula senza reinstallare i PC. Due tipi:

  • File cifrato: tutta la configurazione del laboratorio, la sua storia, le chiavi private e gli hash delle password in un unico file cifrato con la tua passphrase. Back up lab propone un’unità USB collegata per il file, o la cartella home se non ce n’è nessuna.
  • Repository Git privato: un repository privato su GitHub o GitLab, raggiunto via SSH. Chiavi e hash delle password viaggiano cifrati in un file di ripristino; la configurazione resta leggibile ai membri del repository. Dopo il primo backup verificato, ogni modifica salvata viene inviata mentre Nixorium è aperto.

Usa una passphrase di almeno 12 caratteri e tienila lontano dal controller: Nixorium non la salva mai. La schermata iniziale del menu ti ricorda quando serve un backup (codice BACKUP-DUE): per il file, quando configurazione, chiavi o password sono cambiate dall’ultimo o dopo 30 giorni; per Git, quando cambiano chiavi, password o computer fidati, per esempio dopo aver installato un PC. Un promemoria non blocca mai nulla.

Sostituire un controller. Installa il nuovo controller come al solito, accedi come admin e apri Nixorium. Scegli Maintenance → Restore lab. Per un file, Restore lab propone il nixorium-backup-*.age più recente su un’unità collegata e una cartella in cui ripristinare; inserisci la passphrase e conferma. Poi scegli Use this lab on this controller: il laboratorio creato dall’installer viene messo da parte, quello ripristinato prende il suo posto e le sue chiavi vengono installate. Nulla viene cancellato né attivato finché Review controller non lo applica dopo la solita revisione. I PC non vanno reinstallati, ma quelli reinstallati dopo il backup mostrano «SSH key changed»: confronta l’impronta sul loro schermo prima di fidarti.

Tutti i dettagli tecnici: Architettura → Limiti di rete e di fiducia.

7. Ogni giorno

Il docente entra nel controller e apre Classroom view dalla dock: tutti gli schermi insieme, uno schermo in una finestra a sé con Take control, e poi Lock (“Eyes on the teacher”), Share screen, Share files, Block/Allow Internet, Restart e Shut down. Internet torna quando un PC si riavvia; un PC spento compare come Off or not reachable. Nessuno di questi comandi cambia la configurazione del laboratorio. Continuano a funzionare mentre l’amministratore aggiorna i computer: viene lasciato in pace solo un PC che si sta aggiornando, o il cui ultimo aggiornamento si è interrotto, e il riepilogo lo dice.

Save screenshot, Collect from students’ desktops e Switch on completano questi comandi. Save screenshot, nella finestra di un solo PC, salva un’immagine del suo schermo in Nixorium/Screenshots, nella home di chi usa la vista d’aula; funziona solo finché lo schermo è in diretta, quindi un PC spento, dietro il proprio blocco schermo o senza nessuno che abbia fatto l’accesso non ha nulla da salvare. Collect from students’ desktops, nel menu Share files insieme a Send a folder… e Send a file…, copia i file presenti sui desktop dei PC selezionati in Nixorium/Collected, nella stessa home, una cartella per PC, dopo un riepilogo: i file nascosti e i collegamenti restano fuori, sui PC degli studenti non cambia nulla, e un PC con più di 2000 elementi o 500 MB viene segnalato e non ne viene salvato nulla. Aggiorna prima i PC: uno non aggiornato risulta non ancora pronto per la raccolta. Switch on, sotto Power nella vista d’aula e in Computers → Power controls, invia un pacchetto Wake-on-LAN ai PC selezionati che sono spenti. Un pacchetto inviato non prova che il PC si accenda: il suo firmware (BIOS/UEFI) deve permettere la riattivazione dalla rete, il PC deve essere stato riavviato una volta dopo l’aggiornamento dei client che abilita Wake-on-LAN, e deve restare collegato alla corrente. Nessuno digita un indirizzo: il controller impara da solo l’indirizzo della scheda di rete di ogni PC mentre il PC è acceso e la vista d’aula è aperta oppure è in corso Computer inventory, e un PC di cui non conosce ancora l’indirizzo viene saltato (dettagli).

Message → Send a message… mostra un testo di al massimo 300 caratteri sugli schermi dei PC selezionati, davanti a tutto, anche al blocco schermo o a uno schermo condiviso. Resta finché lo studente lo chiude (Close compare dopo 10 secondi), per 30 secondi o 2 minuti, oppure finché non sblocchi il PC; Remove message lo toglie. Gli studenti conservano tastiera e mouse, a meno che il PC non sia bloccato, e uscendo dalla sessione il messaggio sparisce. Aggiorna prima i PC e fai rientrare gli studenti: uno non aggiornato risulta non ancora pronto per i messaggi (dettagli).

Per preparare l’aula a una verifica, usa Internet → Block Internet, Lock e Message uno alla volta, poi Share files → Collect from students’ desktops.

Cosa vedono gli studenti. Finché la vista d’aula è aperta, ogni PC degli studenti mostra nella barra superiore l’icona di condivisione dello schermo di GNOME, oppure, quando una finestra è a schermo intero, una piccola scritta “Classroom view open” in un angolo. Un PC che controlli mostra “Teacher in control”, e Save screenshot e Collect from students’ desktops fanno comparire un breve avviso su quel PC. Sono scritte dell’estensione della vista d’aula: dopo un aggiornamento compaiono al successivo accesso dello studente. L’amministratore spegne o riaccende tutta la vista d’aula da Maintenance → Change settings → Classroom view.

Schedule accende e spegne da solo i PC degli studenti. Apri Power → Schedule… nella vista d’aula (Save e Clear), oppure usa nixorium schedule set --on 07:50 --off 18:00 in un terminale, come docente o amministratore. Ha al massimo un orario di accensione e uno di spegnimento, per i giorni della settimana che scegli (dal lunedì al venerdì se --days non dice altro), secondo il fuso orario del controller. L’accensione è la normale Switch on, quindi valgono le condizioni sopra e un PC di cui non si conosce ancora l’indirizzo di rete viene saltato. Lo spegnimento non interrompe mai una persona: un PC che qualcuno sta usando, o la cui sessione non si riesce a leggere, resta acceso. Se un’installazione da rete o via USB impedisce la partenza, riprova ogni minuto per dieci minuti e poi rinuncia per quel giorno. Un aggiornamento dei computer non lo ferma: lo spegnimento lascia accesi solo i PC in aggiornamento e ne dice il motivo. L’orario è salvato solo sul controller, fuori dalla configurazione e dal backup: va impostato di nuovo dopo aver sostituito il controller (dettagli).

A ogni avvio di un PC, prima della schermata di accesso, parte il ripristino della home. La home precedente dello studente diventa uno dei cinque snapshot a rotazione, in sola lettura e senza i dati temporanei come i pacchetti npm globali, le immagini Docker e gli accessi salvati. Poi viene ripristinata una home pulita dall’ambiente di lavoro preparato, e la sessione dello studente si apre da sola. Il docente trova gli snapshot in Snapshots, nella barra laterale di File, entrando su quel PC. Gli snapshot stanno sullo stesso disco, quindi non sono backup: un disco guasto li perde, e una sessione sparisce dopo altri cinque avvii. Il lavoro da conservare va su una chiavetta USB o sul cloud della scuola. Se un ripristino non riesce a finire, il PC blocca l’accesso: non ripeterlo, fai leggere prima il registro all’amministratore (dettagli).

Account.

  • admin, l’amministratore: possiede la configurazione del laboratorio sul controller, con sudo e SSH.
  • Il docente: una home che si conserva, la vista d’aula con i suoi comandi e la lettura degli snapshot.
  • Lo studente: un unico account condiviso su ogni PC, che entra da solo, senza diritti di amministratore e con la home ripristinata a ogni avvio. La sua password è la stessa ovunque.

Gli account fanno parte della configurazione, quindi passwd non li cambia. Usa Maintenance → Change settings → Accounts, con Change account names e Change account passwords. Una nuova password vale sul controller quando applichi la configurazione, e su ogni PC quando lo aggiorni. Un account rinominato parte con una home nuova e vuota.

8. Cambiare qualcosa

Ogni modifica segue la stessa strada: la prepari nel menu, la rivedi, la salvi (un commit nella configurazione del laboratorio), poi la applichi. Il solo salvataggio non cambia nessun PC acceso.

  • Programmi. In Software cerca nell’insieme di pacchetti fissato dal laboratorio, oppure scegli un suggerimento o un intero profilo (p). Decidi dove va: condiviso (il controller e tutti i PC, presenti e futuri), solo il controller, tutti i PC degli studenti, un gruppo o PC scelti. Con Invio su un programma configurato ne cambi la destinazione (c) o lo togli (x).
  • Il desktop degli studenti. In Maintenance → Change settings → Student workspace modifichi dock, preferiti e desktop, il browser predefinito e i file iniziali della home dello studente. Impostazioni ed estensioni di VS Code degli studenti le cambia Assistant su richiesta, perché VS Code non è sempre installato; le estensioni gestite dal profilo restano la strada consigliata. Se il profilo ha l’estensione Java e i programmi includono un JDK, le sue impostazioni puntano a quel JDK. Anche un programma scaricato fuori da Nix, come un’estensione del Marketplace che porta con sé i propri binari, funziona per il personale, che conserva la home; le home degli studenti perdono queste installazioni al ripristino.
  • Impostazioni. In Maintenance → Change settings trovi rete, computer, account, impostazioni regionali, browser e Git.

Nulla viene scritto finché non confermi il riepilogo. La maggior parte dei riepiloghi si conferma con Invio (in un terminale nixorium chiede Continue? [y/N]); Esc annulla. Si scrive una parola solo prima di qualcosa che non si può annullare: cancellare un disco, azzerare il modello di configurazione, scartare modifiche non salvate, fidarsi della chiave di un nuovo computer, eliminare le versioni vecchie e, in un terminale, spegnere o riavviare PC che qualcuno sta usando. Poi ci sono due passi separati:

  • Apply to controller. Dopo un salvataggio il menu propone Apply to this controller; si trova anche in Maintenance → Advanced. Il controller costruisce la configurazione salvata e passa a quella, dopo un riepilogo che mostra cosa cambia. Serve dopo ogni modifica alle impostazioni. I programmi salvati come condivisi o solo per il controller lo fanno da soli, subito dopo il salvataggio.
  • Update computers. In Computers → Update computers, oppure con Update affected computers dopo aver salvato un programma, scegli i PC (n seleziona quelli da aggiornare; i PC il cui aggiornamento in coda è superato sono già selezionati) e premi Invio sul riepilogo. Il motore di aggiornamento di Nixorium costruisce i sistemi una sola volta, ne copia uno su ogni PC, e il PC passa al nuovo sistema in un servizio che continua a girare anche se la connessione cade. Poi il menu verifica quali PC usano ora la revisione approvata. Il log dell’aggiornamento mostra quando è iniziato ogni passo e quanto è durato, con il tempo totale alla fine, più l’avanzamento e i messaggi di attivazione di ogni PC.

Nulla arriva a un PC degli studenti finché non lo aggiorni. Un PC spento va in coda (opzione attiva di serie nel riepilogo). Un PC spento mentre l’aggiornamento viene costruito resta com’è e viene segnalato come non aggiornato, oppure va in coda anche lui se hai scelto così; non blocca mai gli altri PC, e nemmeno un PC che fallisce. Un PC che perde la connessione durante l’aggiornamento finisce da solo: l’aggiornamento si chiude da sé appena ogni PC ha riferito come è andata, e solo un PC il cui esito è davvero sconosciuto lo tiene aperto per una revisione. Il controller riprova ogni minuto e aggiorna insieme i PC in attesa che rispondono; se un’altra operazione è in corso, aspetta il minuto successivo. Computers → Queued updates li elenca. Una voce non viene applicata se nel frattempo la configurazione è cambiata: il prossimo Update computers seleziona per te quei PC, così il suo riepilogo li include. Mentre aggiorni i computer, i comandi dell’aula continuano a funzionare per gli altri PC. Dopo un aggiornamento il PC mostra una notifica: chiede un riavvio quando sono cambiati il kernel o systemd; altrimenti dice che l’aggiornamento è già attivo e suggerisce il riavvio solo se qualcosa non funziona come previsto. Un PC non si riavvia mai da solo. Le modifiche al desktop degli studenti compaiono al successivo avvio normale, quando la home viene ripristinata.

Annullare l’ultima modifica salvata. Quando l’ultima modifica salvata (impostazioni, programmi o ambiente degli studenti) dà problemi, torni alla configurazione salvata prima: in Maintenance → Review Git changes premi u (Undo the last saved change), oppure esegui nixorium git undo plan come admin. Il riepilogo mostra descrizione, data e file di quella modifica. Confermandolo con Invio (y in un terminale) si salva una nuova modifica, “Undo: …”, e i file tornano indietro; la modifica annullata resta nella cronologia e non viene inviato nulla. Nessun PC cambia ancora: esegui Apply to controller e poi Update computers, come per ogni modifica. Prima salva o scarta le altre modifiche non salvate. Si può annullare solo l’ultima modifica, una volta, e solo una modifica salvata ordinaria: rifiuta, e indica il passo successivo, quando quella modifica è la prima versione salvata, un’unione o già un annullamento, quando ha aggiornato Nixorium o la base dei pacchetti (vedi il ripristino degli aggiornamenti), quando ha registrato chiavi, quando fa parte di un cambio della rete del laboratorio, o quando i suoi file non possono tornare indietro in sicurezza (dettagli).

I PC identici condividono una configurazione. I PC con gli stessi programmi e lo stesso tipo di scheda di rete condividono un solo sistema, perciò il riepilogo dice, per esempio, che costruisce 2 configurazioni per 20 PC: si costruisce una volta, non una per PC. Ogni PC tiene il proprio nome e il proprio indirizzo del laboratorio da un piccolo record di identità, /var/lib/nixorium/identity.json, che contiene solo il suo numero. Lo scrive l’aggiornamento o l’installer prima che il PC avvii il nuovo sistema, e un aggiornamento non sovrascrive mai un record che indica un altro PC. Se un PC dice “This computer has no Nixorium identity”, o un aggiornamento dice “identity record names another computer”, vedi la tabella in Quando qualcosa va storto. Un modulo privato che usa il nome o l’indirizzo di un PC richiede che quel PC sia elencato in hostModules o updateValidationHosts; altrimenti la valutazione si ferma e lo dice.

Tutti i dettagli tecnici: Architettura → Aggiornamenti del sistema.

9. Aggiornare

Due aggiornamenti separati, entrambi in Maintenance:

  • Update Nixorium cambia il framework: menu, moduli e programma di gestione. Elenca le versioni pubblicate, di serie quelle stabili, e nasconde quelle più vecchie della versione configurata: il menu non propone mai di tornare a una versione precedente. Cambia flake.nix e flake.lock e, quando una versione lo richiede, i file propri della configurazione del laboratorio (vedi sotto).
  • Update system and packages porta NixOS e tutti i pacchetti a una revisione più recente dello stesso canale. Passare a un’altra versione di NixOS è una scelta separata ed esplicita (m), in cui confermi di sapere che la compatibilità non è verificata.

Entrambi compilano davvero la nuova versione proposta e mostrano cosa cambia (F4 aggiunge tutte le versioni e le modifiche riga per riga); Invio la salva, poi ricostruisce e verifica il controller. Update Nixorium può anche cambiare i file propri del laboratorio, come modules/workstation.nix, quando una versione lo richiede, invece di chiederti di modificarli a mano. Il riepilogo mostra ogni modifica come Migration, con un motivo in una riga, oppure come Manual change quando hai modificato tu quel punto o il file manca: in quel file non viene toccato nulla, e la riga sotto dice cosa sostituire. Fai quella modifica con una normale modifica rivista, poi aggiorna di nuovo. Il salvataggio scrive i file cambiati e li registra insieme all’aggiornamento, puoi annullarli con Git come ogni aggiornamento, e nixorium-migrations.json registra quali modifiche sono state fatte, così ognuna si fa una volta sola; non modificarlo a mano. La nuova versione porta con sé il programma che fa la modifica e lo esegue su una copia in una sandbox chiusa; l’aggiornamento viene rifiutato se fallisce o cambia qualcosa di inatteso. Un controller con la versione 3.9.0 o precedente non può farlo durante l’aggiornamento a una versione che lo richiede: segui prima il passo da fare una volta. Dopo Update Nixorium il risultato resta sullo schermo: Invio riapre l’interfaccia sulla nuova versione, Esc resta su quella in uso. I PC tengono il loro sistema finché non li aggiorni: aggiorna un PC, controllalo, poi gli altri. Prima di installare altri PC, ripeti la preparazione dell’installazione da rete. Se poi Update computers dice PIN-OUTDATED, apri Maintenance → Update Nixorium, scegli la versione configurata, indicata come “Current · select to repair”, e conferma.

Versioni del sistema e menu di avvio. Ogni applicazione al controller e ogni aggiornamento di un PC aggiungono su quella macchina una nuova versione del sistema, una generazione; le vecchie restano, e il menu di avvio (GRUB) ne elenca fino a dieci. Se un PC, o il controller, non parte più o perde la rete dopo un aggiornamento, riavvialo e scegli nel menu di avvio la versione precedente del sistema, PC per PC, poi correggi la configurazione prima di applicarla di nuovo; un PC senza rete non si ripara dal controller. Tornare indietro cambia il sistema, non i dati come un database già migrato. Le vecchie versioni occupano spazio: il menu avvisa quando il disco del controller è quasi pieno, e Maintenance → Advanced → Free disk space tiene le dieci più recenti, quella in uso e quella con cui il PC è partito; per confermare si scrive CLEAN.

10. Quando qualcosa va storto

Quando qualcosa blocca un’operazione, il menu dice in una frase semplice che cosa si è fermato, perché e che cosa fare dopo. Premi Invio su quell’avviso per aprire la schermata che risolve il problema; Esc la chiude, e d mostra il messaggio tecnico. La schermata iniziale elenca ciò che si è interrotto con le stesse parole, e ogni rifiuto indica un codice. Non cominciare cancellando file, chiavi o indirizzi.

Sintomo Che cosa fare
Un PC non parte dalla rete Controlla che l’installazione da rete sia attiva, che l’avvio da rete preceda il disco e che il PC sia sulla rete del laboratorio. Guida
L’installer si carica ma fallisce Ferma l’installazione da rete, ripeti la preparazione, poi riavviala. Guida
Un PC installato non si vede Controlla alimentazione, cavo e indirizzo del laboratorio; con due schede cablate serve un’eccezione per l’interfaccia. Guida
Un PC compare come Off or not reachable È spento, o la rete non lo raggiunge: Computer inventory dice quale dei due. Guida
Un aggiornamento è rimasto in sospeso (DEPLOY-PENDING) Apri Review the interrupted update (Invio sull’avviso, o dalla schermata iniziale). Mostra per ogni PC se ha finito, sta ancora aggiornando o non risponde: premi c per proseguire senza i PC che non rispondono, poi Invio per segnare l’aggiornamento come controllato. Sui PC non cambia nulla; poi aggiorna di nuovo. Spesso non serve alcuna revisione: l’aggiornamento si chiude da sé quando ogni PC ha riferito il suo esito. La manutenzione aspetta, mentre i comandi dell’aula (Internet, spegnimento, riavvio, l’orario) funzionano ancora: lasciano in pace solo i PC nominati dall’aggiornamento. Update Nixorium e Apply to controller continuano a funzionare, e se una versione più vecchia rifiuta ancora di attivare il controller, vedi l’ultima risorsa. Guida
Un PC dice “This computer has no Nixorium identity” Il suo record di identità manca o non è valido, quindi parte senza l’indirizzo del laboratorio. Al PC, riavvialo e scegli la versione precedente nel menu di avvio, poi aggiornalo dal controller; altrimenti scrivi il suo numero nel record, oppure reinstallalo. Guida
L’aggiornamento dice “identity record names another computer” L’aggiornamento ha lasciato apposta quel PC com’è e non sovrascrive mai il record. Stabilisci quale PC è quale, correggi il record su quel PC, poi aggiorna di nuovo. Guida
Il riepilogo di Update Nixorium mostra “Manual change” La versione non ha potuto cambiare uno dei tuoi file perché hai modificato tu quel punto. Fai la modifica indicata dalla riga, salvala in Maintenance → Review Git changes, poi aggiorna di nuovo. Guida
Update Nixorium è rifiutato per le modifiche ai tuoi file Le modifiche della nuova versione sono fallite o sono andate oltre quanto dichiarato; la versione che usi continua a funzionare. Correggi ciò che dice il messaggio, oppure resta su quella e raccogli un rapporto di supporto. Guida
Apply to controller non è riuscito Leggi l’errore indicato, correggilo, poi rifai il riepilogo. Guida
Dopo un aggiornamento un PC non parte più Scegli nel menu di avvio la versione precedente del sistema, poi correggi la configurazione. Guida
Backup più vecchio di 30 giorni (BACKUP-DUE) Fanne uno nuovo con Maintenance → Back up lab. Guida
Uno studente ha perso un file Come docente su quel PC, apri Snapshots in File. Guida
Il controller è guasto o va sostituito Installane uno nuovo con lo stesso numero e la stessa rete, poi Maintenance → Restore lab e Use this lab on this controller; i PC non vanno reinstallati. Guida
Un salvataggio o un ripristino del modello si è interrotto Apri la voce in sospeso nella schermata iniziale, Finish or undo the reset, e leggi che cosa ha trovato. Se nessun file cambia, basta Invio; solo per file vecchi e nuovi mescolati scrivi RESTORE. Non cancellare nulla. Guida
Un’installazione da USB o da rete si è interrotta Apri Resume or close the USB installation o Recover the controller network dalla schermata iniziale o dalle schermate Installation e segui ciò che propone. Con un’installazione da USB non finita Update Nixorium e Apply to controller restano disponibili, tranne mentre si scrive il disco del PC; un’installazione da rete ancora aperta li ferma. Guida
Il docente vede un codice come OP-BUSY Aspetta la fine dell’operazione in corso, o segui la riga di quel codice. Guida

11. Assistant

Assistant è un servizio facoltativo a pagamento nel menu dell’amministratore. Descrivi una modifica con parole tue; rivedi la sua proposta prima di salvarla, poi applichi e aggiorni come sempre. Per un programma distribuito come download (AppImage, deb o tarball), scarica il file una sola volta sul controller e fissa da solo il suo hash, quindi non devi calcolare nulla. Se nulla è cambiato dopo la valutazione fatta da Assistant, il riepilogo la riusa e dice quanto tempo fa è stata verificata, invece di valutare di nuovo il laboratorio. Dopo un ulteriore consenso può leggere file di sistema del controller e dei PC, come il menu di avvio o le impostazioni in /etc, per esempio per rendere Windows la voce di avvio predefinita senza chiederti di cercare nulla. Non legge mai le cartelle home, le password, le chiavi o le credenziali Wi-Fi. Può anche elencare i dispositivi che ogni computer vede (USB, PCI, schermi, schede audio, code di stampa, senza numeri di serie) per trovarne uno non riconosciuto, e proporre il numero di computer, i nomi degli account e l’interruttore della vista d’aula con gli stessi avvisi e la stessa revisione del menu. Se il servizio interrompe una risposta, Assistant lo dice e ti chiede di inviare di nuovo il messaggio. In una chat ripresa in sola lettura le frecce scorrono la conversazione; Tab sceglie tra continuare in una nuova chat e tornare indietro. Per impostazione predefinita Assistant salva le conversazioni sul servizio Assistant per 90 giorni, per trovare e correggere gli errori di Assistant (domande, risposte e risultati degli strumenti usati, dopo una redazione al meglio delle possibilità); si disattiva nelle impostazioni di Assistant (“Save conversations on the service”). Nixorium funziona completamente anche senza (piani e prova gratuita).

12. Limiti e cautele

  • L’installazione cancella tutto il disco confermato, Windows compreso se sta su quel disco.
  • Gli snapshot restano sullo stesso disco e ruotano dopo cinque avvii: non sono backup.
  • Gli account sono locali e fissi: un amministratore, un docente e un account condiviso per gli studenti, con la stessa password su ogni PC. Non ci sono accessi personali per studente né un elenco utenti della scuola.
  • Non esiste un’installazione automatica: qualcuno conferma ogni PC davanti al suo schermo, o la sua impronta via SSH.
  • La rete del laboratorio è cablata: un laboratorio di PC solo in Wi-Fi non è supportato. L’avvio da rete può non funzionare con alcuni firmware e reti scolastiche; l’alternativa è USB over SSH.
  • “Monitoring stopped on this PC” è un aiuto per la lezione, non una garanzia di sicurezza. Uno studente non può fermare la vista d’aula dal terminale della sessione: riparte entro pochi secondi e nel frattempo la scheda lo dice. Se uno studente maschera la sua unità systemd, la vista d’aula torna solo al riavvio successivo, quando la home viene ripristinata.
  • Le versioni sono verificate su macchine virtuali: inizia con un controller e un PC tuoi.

Guide complete

In inglese, alla revisione di Nixorium descritta in questa pagina: