Puavo in a Nutshell

Einleitung

Puavo besteht aus nur zwei Komponenten:

Beide Komponenten sind freie Software (GPLv2) und von der Codebasis und im Aufbau voneinander unabhängig.

PuavoWeb

PuavoWeb ist ein gehosteter Dienst mit Web-Frontend bestehend aus mehreren Datenbanken:

Diese Datenbanken werden von den PuavoOs-Clients zur Benutzer- und Clientauthentifizierung und zur Client-Konfiguration benutzt.

Alle PuavoOS-Clients sind deshalb über's Internet über eine ReST-Schnittstelle im ständigen Kontakt mit PuavoWeb. Sie komunizieren verschlüsselt über ein VPN und übertagen (bis auf den Benutzernamen) nie personenbezogene Daten

Das WWW ist ein Informations-Dienst für Menschen. ReST ist das Gleiche, jedoch für Maschinen. Ein Client stellt Anfragen wie "Hallo ReST: ich bin ein PuavoClient und ich heisse Anton. Sende mir bitte meine Systemeinstellungen". Darauf sendet ReST diese an den Client und dieser kann sich entsprechend konfigurieren.

PuavoUser bietet auch ein Single Sign-On für andere Web-Dienste an.

PuavoWeb ist bezüglich der Nutzerdaten (z.B. in /home/* auf den Lerngeräten) vollständig agnostisch: Es werden, mit Ausnahme vom Benutzernamen, keine personenbezogenen Daten gespeichert oder verarbeitet.

Wenn beim Einrichten der Benutzer Nicks (statt Klarnamen) verwendet werden, dann werden gar keine personenbezogenen Daten mehr übermittelt.

Ein Überblick auf Organisationstruktur und das Web-Backend:

PuavoOS

PuavoOS ist ein auf Debian basierte Adaption. Im speziellen sind folgende Erweiterungen enthalten

Es unterstützt eine Vielzahl an PuavOS-Client-Typen:

Alle PuavoOS-Clients

PuavoOS ist universell: Es gibt eine einzige PuavoOS-Version für alle Client-Typen und für alle beliebigen Hersteller, Marken und Modelle.

PuovoOS ist vollständig: Es stellt alles "aus einem Guss" zur Verfügung, was an der Schule benötigt wird.

PuavoOS ist rekursiv: Es kann sich selber herstellen, modifzieren und verteilen.

PuavoOS-Images

Alle vier bis sechs Wochen werden neue Puavo Images erstellt. Diese enthalten

Datails der Aktualisierungen sind auf Puavo Image Changelog zu finden.

Zur Verteilung von PuavoOS und für dessen Installation auf den Clients wird ein Laufwerk-Abbild resp. Image des PuavoOS auf dem komprimierenden Squash-Filesystem benutzt.

Alle Clients, auch Laptops und PuavoBoxen, werden mit dem identischen LTSP Netboot-Image (ltsp.org) gestartet. Hier wird erklärt, wie Laptops mit einem Netboot-Image benutzt werden können.

Die Grösse des Image beträgt komprimiert etwa 12-17 GByte.

Damit bei einer Aktualisierung der Images weniger Trafic verursacht wird, werden nur die Differenzen zur Vorgängerversion übertragen. Die Grösse einer solchen differentiellen Aktualisierung ist zwischen 0.2-3 Gbyte.

Konfiguration von PuavoOS-Clients

PuavoOS-Clients sind vollständig befreit von jeglicher (Software-)Wartung und jeglicher Konfiguration.

Es können an PuavoOS-Clients keine System-Einstellungen vorgenommen werden. Alle Einstellungen werden im Web-Backend von PuavoWeb gemacht.

PuavoOS-Clients holen beim Booten und danach jede Stunde (von PuavoWeb über PuavoReST) ihre aktuelle Konfiguration und wenden diese dann auf das sich an.

Eine Aktualisierung der Konfiguration benötigt etwa 2-4 KByte Traffic.

Ein laufender Client erzeugt durchschnittlich also etwa 10Byte/s externen Traffic.

Falls der Client keinen Internetzugang funktioniert alles mit den aktuellen Einstellungen weiter.

Aktualisierung des PuavOS

Wenn PuavOS festellt, dass ein Update des PuavoOS vorliegt, beginnt es damit das Image der neuen Version von Image-Dienst herunter zu laden:

Falls sich der Client in der Schule befindet wird dabei kein externer Traffic in's Internet erzeugt, denn die PuavoBox wird als Image-Dienst verwendet.

Sobald die neue Version vollständig heruntergeladen/gepatcht und kryptographisch verifiziert (md5sum) ist, wird sie als default Boot-OS festgelegt.

Die kryptographische Verifizierung gegen die vom PuavoImage ursprünglich generierte Version schliesst jeden Fehler beim Aktualisieren des PuavoOS aus.

Beim nächsten Bootvorgang wird das akualisierte PuavoOS gestartet.

Diese Art der Aktualisierung ist atomisch: Das ganze PuavoOS wird mit einem einzigen "unteilbaren Schritt", dem Bootprozess, vollständig ersetzt.

Die Aktualisierung des PuavoOs passiert im Hintergrund über das WLAN während des normalen Schulbetriebs.

Um eine typische Aktualiserung vollständig durchzuführen muss ein Laptop etwa eine Stunde (mit WLAN-Verbindung) eingeschaltet sein. Ein Login ist nicht nötig.

Ein PuavoOS-Client kann während einer laufenden Aktualisierung ohne Probleme jederzeit abgeschaltet werden. Beim nächsten Start wird die unterbrochene Aktualisierung an der Abbruchstelle fortgesetzt.

Jeder PuavoOS-Client hat immer zwei PuavoOS-Versionen "vorrätig". Er bietet neben der aktuellen PuavoOS-Version immer noch die vorherige Version als Backup an.

Der atomische Update mit einem kryptographisch geprüften Image führt zusammen mit dem Backup-Image zu einem praktisch "unkapputbaren" Updateprozess.

PuavoOS-Clients

Puavo-Lerngeräte

Aus Benutzersicht verhält sich jedes PuavOS-Lerngerät wie eine ganz gewöhnliche

ausgetattete standard Debian-Installation. Die Benutzerdaten werden, wieder wie jedem gewöhnlichen Installation, in lokalen Profilen permanent gespeichert.

Diese lokalen Profile werden von PuavoOS in nie "angefasst", so werden z.B. keine Profile synchronisiert oder anderweitig bearbeitet.

Falls das Lerngerät mit einer PuavoBox verbunden ist, werden jedem Benutzer automatisch zusätzlich persönliche und geteilte Netzlaufwerke angeboten.

Bei einem geteilten Laptop, welcher von mehreren SuS gemeinsam benutzt wird, sind diese Netzlaufwerke der standard Speicherort. So kann jeder SuS eine angefange Arbeit auf jedem beliebigen anderen Laptop weiter berabeiten.

PuavoBox

PuavoClients können in jeder beliebigen Netzwerkumgebung, also auch z.B. bei den SuS zuhause benutzt, aktualisiert und konfiguriert werden. Eine PuavoBox ist für den Betrieb von PuavoClients nicht erforderlich.

An Schulen ist die Benutzung einer PuavoBox jedoch sinnvoll, denn sie

Dank der PuavoBox kann Puavo problemlos mit einer Internetverbindung mit 1MBit/s Download und 0.1MBit Upload betrieben werden.

Puavo funktioniert aber auch ganz ohne Internetverbindung. Ohne Verbindung können einfach keine neuen Einstellungen von PuavoWeb übernommen werden.

Die PuavoBox ist ein ganz gewöhnlicher Puavo-Client, welcher statt eines Desktop lokale Netzwerkdienste anbietet. Sie benutzt das identische PuavoOS wie die Benutzerendgeräte und ist, ebenso wie diese, vollständig (Software-)Wartungs- und Konfigurationsfrei.

Die PuavoBox ist kein Server.

PuavoImage

Ein PuavoImage-Client kann PuavoOS Images "from scratch" bauen und diese sich selbst(!) und allen anderen Clients über das Internet zur Verfügung stellen.

PuavoImage-Clients sind normalerweise nicht an der Schule, sondern in einem externen Datacenter.

Datensicherung

Eine Datensicherung darf nie am selben Ort wie die zu sichernden Daten abgelegt werden. Die Datensicherung verletzt daher "vorsätzlich" das Paradigma von Puavo, dass keine personenbezogenen Daten die Schule verlassen.

Die Datensicherung ist ein eigenständiger Dienst, sie ist vollständig unabhängig von PuavoWeb und PuavoOS.

Es ist ohne Probleme möglich einen anderen Backup-Dienst (eines Drittanbieters) zu verwenden.

Sie beinhalted eine tägliche Sicherung der Daten auf der PuavoBox gespeicherten Daten und dient dazu bei einem Ausfall der PuavoBox diese wieder zu rekonstruieren.

Der Backup-Dienst sichert nur die auf der PuavoBox liegenden Daten der persönlichen und geteilten Netzlaufwerke.

Der Backup-Dienst sichert nicht die lokalen Profile der Lerngeräte!

PuavoOS synchronisiert keine lokale Benuzterprofile der Lerngeräte auf die PuavoBox. Der Benuzter ist verantwortlich die zu sichernden Daten händisch auf sein Netzlaufwerk zu kopieren.