Greboca  

DLFP - Dépêches  -  SambaÉdu 4, une solution de serveurs pédagogiques libres basés sur GNU/Linux

 -  5 janvier - 

SambaÉdu 4

SambaÉdu est une solution libre de serveurs pédagogiques sous GNU/Linux (Debian), développée et utilisée dans les établissements scolaires depuis 1998. Elle utilise les technologies du logiciel libre : Samba, PHP et MySQL.

Elle comporte une interface Web permettant l’administration du dispositif par une personne non initiée à GNU/Linux. Conçu, développé, maintenu et supporté essentiellement par des enseignants, pour des enseignants, SambaÉdu offre tous les services attendus, permettant aux équipes pédagogiques de disposer d’un outil adapté alliant souplesse et robustesse.

Son développement est très actif et réalisé sur un modèle coopératif et mutualisé. Les contributeurs sont répartis dans différentes académies (Paris, Créteil, Versailles, Clermont‐Ferrand, Rouen, Caen…) et participent activement à son développement. La version stable actuelle est SE4 qui est en cours de déploiement, soit par installation à partir de zéro, soit par migration depuis un SE3. Parmi les nouveautés essentielles de cette version, on trouve le passage à un annuaire AD (Active Directory) tel que préconisé par Samba 4, ainsi que le couplage de deux machines se4ad et se4fs (le se4ad pouvant être dans un conteneur du se4fs) et la synchronisation entre l’AD et l’ENT ou entre l’AD et une forêt d’annuaires AD : seule la solution SE4 offre ces possibilités.

En dehors de la présentation des fonctionnalités, cet article sera l’occasion de faire le point sur les choix faits pour l’équipement des établissements scolaires, de leur impact sur le logiciel libre. L’aspect technique sera aussi abordé.

Sommaire

Historique

L’historique de la solution SambaÉdu est disponible sur le site de l’association. SE1 est né dans un collège de Normandie : merci Monsieur le professeur (Olivier Lecluse) !

Les enjeux

En France, depuis la décentralisation, le fonctionnement des établissements secondaires publics, collèges et lycées, dépend respectivement des départements et des régions. Concrètement, les enseignants et élèves utilisent du matériel appartenant aux collectivités. En théorie, celles‑ci devraient donc assurer la configuration et maintenance des équipements informatiques. Or, souvent, faute d’une réelle discussion avec les enseignants sur les usages pédagogiques, les solutions déployées sont définies sur des critères qui ne correspondent pas aux usages et qui, de plus, négligent totalement la question du logiciel libre.

Or, avant la décentralisation, l’Éducation nationale avait soutenu ou initié des projets libres, dont SambaÉdu 3, développé au niveau des académies de Normandie et d’Île‑de‑France. De nombreux établissements utilisent donc toujours ces solutions, bien que leur obsolescence commence à poser de sérieux problèmes avec les postes Windows 10 ainsi qu’en termes de sécurité des données. À l’origine, la maintenance était assurée par des personnels des rectorats et par des enseignants référents. L’évolution des statuts de ceux‑ci limitant très fortement les possibilités de les payer pour ces tâches, la tentation est grande pour l’Éducation nationale de passer la main aux collectivités territoriales, déjà en charge du matériel.

Dans la plupart des cas, ceci conduit à la mise en place de solutions propriétaires préconisées par des prestataires aux compétences purement Microsoft : Windows Server, avec éventuellement une surcouche KoXo, Magret, ou autre… Le tout vendu avec des promesses d’annuaire fédérateur, de centralisation de la maintenance et des déploiements, de virtualisation des postes de travail qui, si elles devaient s’avérer, signifieraient la bascule totale de l’EN dans l’univers privateur de Microsoft Azure Cloud ou des Google Apps. L’Éducation nationale serait alors totalement dépendante des décisions de sociétés privées, perdant ainsi tout contrôle sur les logiciels qu’elle utilise au quotidien. Il est d’ailleurs étonnant de constater que d’un côté l’État cherche à mettre en place des solutions de cloud souveraines, et de l’autre laisse le champ libre à l’Éducation nationale et aux collectivités pour déployer massivement des solutions Windows ou Android qui, par défaut, font tout pour pousser l’usage des services en ligne Microsoft Azure ou Google.

Heureusement pour le moment, pour des questions d’infrastructure réseau mal dimensionnées et de non‐prise en compte des usages et contraintes sur le terrain, les expériences à grande échelle se sont révélées catastrophiques. Dans ce contexte, persuadés qu’il est possible de proposer une alternative libre, nous avons décidé, en dehors de tout cadre institutionnel, de reprendre le projet SambaÉdu afin de démontrer au niveau des usages spécifiques d’un établissement du secondaire qu’il est possible avec des moyens très réduits, non seulement de faire mieux que les solutions propriétaires, mais en plus de permettre aux usagers de SE3 de migrer en douceur sans perdre leurs données.

Solution logicielle mise en place

La solution SambaÉdu 4 s’appuie sur deux serveurs Debian GNU/Linux en version Buster, virtuels ou physiques. La plate‑forme privilégiée est Proxmox, mais tout autre hyperviseur peut être utilisé, car il n’y a aucune contrainte technique. Il est même possible, dans le cas de la migration d’un serveur SE3 existant, d’utiliser un conteneur LXC pour le serveur AD.

L’ensemble de la solution est disponible sous forme de paquets Debian, avec la possibilité d’une installation totalement silencieuse dans le cas d’une migration depuis un serveur SE3, et d’une installation extrêmement simple dans le cas d’une installation à partir de zéro.

Le serveur SE4AD

C’est le serveur principal Active Directory, et donc aussi DNS et partage Sysvol. Il s’appuie sur Samba 4. Il s’agit d’une configuration tout à fait standard, aucune personnalisation n’est apportée, l’installeur se borne à migrer l’annuaire LDAP SE3, ou à créer un nouvel annuaire. Techniquement rien n’empêcherait d’associer ce serveur à d’autres dans une forêt AD, qu’elle soit gérée par des Samba ou des Windows Server.

Le serveur SE4FS

C’est le serveur de fichiers Samba, gestionnaire d’imprimantes Samba‐CUPS, DHCP et d’ammorçage iPXE. L’interface Web d’administration tourne sur ce serveur. Outre l’interface utilisateur, elle fournit les services Web pour les scripts dynamiques d’installation et de clonage, ainsi que le serveur d’applications WPKG.

Fonctionnalités

Annuaire

Un établissement scolaire est un ensemble d’utilisateurs qui changent de fonction chaque année. Un annuaire fédérateur national existe, mais – heureusement d’ailleurs –, il n’est pas accessible via un service Web public. De plus, la réconciliation des données avec les emplois du temps locaux est longue et complexe, et donc les données ne sont généralement pas exploitables avant octobre, ce qui pose problème.

Les données d’emploi du temps à jour peuvent être récupérées directement depuis les logiciels (propriétaires), mais il s’agit d’exportations manuelles via des fichiers aux formats peu documentés. Enfin, la généralisation des espaces numériques de travail (ENT) pourrait théoriquement permettre de disposer de bases correctes et synchronisables en temps réel. Malheureusement, à l’exception notable de l’Île‑de‑France, les collectivités ont fait le choix de solutions propriétaires n’offrant pas d’API documentées permettant la récupération des données et l’authentification. On peut d’ailleurs s’interroger sur le peu de cas fait aux règles d’interopérabilité quand un établissement ne peut même pas disposer de ses propres données sans devoir recourir à des acrobaties. L’ampleur et la difficulté du travail fait par Sésamath pour Sacoche afin de disposer de connecteurs pour les différents ENT est assez parlant. Nous pourrions reprendre ces éléments libres, mais dans l’immédiat, nous préférons laisser aux collectivités qui ont fait le choix du propriétaire le soin de trouver une solution pour assurer l’interopérabilité qu’elles n’ont pas jugé bon d’inclure dans le cahier des charges.

Afin de construire l’annuaire (de type AD − Active Directory − pour la version SE4) qui contiendra les utilisateurs (les enseignants, les élèves, le personnel administratif…) ainsi que l’ensemble des groupes (les classes, les regroupements, les professeurs principaux, les équipes et bien d’autres possibilités) plusieurs possibilités existent donc :

  • la synchronisation avec les annuaires fédérateurs des académies (fichiers Siecle/STS) ;
  • la synchronisation avec les outils de vie scolaire (fichiers XML ou CSV) ;
  • la synchronisation automatique avec les ENT (sous réserve de disposer des infos de l’API !).

Dans tous les cas, un assistant permet la réconciliation des données et le choix de politiques de connexion et de mots de passe.

Il faut noter que seule l’utilisation des données issues de l’ENT, qui sont déjà validées par la CNIL, peut se faire sans déclaration supplémentaire. Tous les autres modes de peuplement d’un annuaire, à partir du moment où un accès depuis l’extérieur est possible, devraient faire l’objet d’une déclaration.

Authentification

Sous réserve de disposer d’une source d’authentification OAuth2, SE4 est capable de l’utiliser, permettant une gestion simplifiée des mots de passe, avec une possibilité de pseudo‑SSO avec un mot de passe unique.

À ce jour, seul l’ENT d’Île‑de‑France, basé sur du Libre, offre cette possibilité.

Partages pédagogiques

Avec l’arrivée massive de tablettes et autres équipements mobiles, la question de la pertinence d’un serveur de fichiers SMB/CIFS commence à se poser. Une solution de type « cloud » pourrait sembler plus judicieuse, en permettant l’unification des données entre équipements mobiles et postes de travail. Malheureusement, peu d’applications sont encore capables d’utiliser de façon efficace des données en partage Web. Il est donc nécessaire de disposer sur les postes d’un client de synchronisation de fichiers permettant de monter de façon efficace les partages.

Aujourd’hui, seul Seafile le permet de façon libre (avec toutefois un petit bémol : le client Seadrive n’est pas libre). Nextcloud, excellent en mode Web, ne propose malheureusement pas de client de synchronisation utilisable. Il est en revanche possible d’exporter des partages Samba (les utilisateurs du réseau pédagogique peuvent donc accéder de chez eux à leurs documents en téléchargement et téléversement, et donc sans avoir recours à des disques ou de clefs USB), mais la montée en charge n’est pas garantie.

Les pages d’administration des partages vont progressivement être adaptées afin de permettre d’utiliser différents back‑ends de stockages des données : répertoires partagés Samba, bibliothèques Seafile, partages Nextcloud…

Groupes

Tous les groupes sont possibles, depuis les groupes standards (Classes, Profs, Profs Principaux, Personnel administratif) jusqu’à des groupes adaptés à la situation de l’établissement (Groupe des latinistes, groupe du Journal des élèves…). Avec la réforme des lycées, la notion de classe devient à géométrie variable, et il est donc nécessaire de disposer de davantage de souplesse au niveau de la création des partages de groupes. Là aussi, une synchronisation avec l’ENT est la meilleure façon de garantir la cohérence des groupes d’utilisateurs sans devoir refaire manuellement les affectations à chaque changement !

Partages généraux

« Home »

Le lecteur « home » va contenir tous les documents personnels de l’utilisateur, ainsi que les fichiers de configuration personnalisés. Seul l’utilisateur sera capable de voir ce que ce lecteur contient. L’administrateur peut tout à fait instaurer des quotas pour éviter que le serveur soit saturé par des utilisateurs trop gourmands.

« Classe »

Chaque classe de l’établissement dispose d’un partage « Classe » contenant :

  • un répertoire « _profs » qui est un dossier d’échange entre les professeurs ;
  • un répertoire « _travail » en lecture seule pour les élèves dans lesquels les enseignants peuvent déposer des documents non modifiables ;
  • un répertoire pour chaque élève de la classe ; ce répertoire permet aux enseignants de distribuer du travail à chaque élève, à chaque élève de déposer son travail, à l’enseignant de récupérer le travail des élèves de façon simple et pratique.
« Docs » et « Progs »

Un répertoire « Ressources sur le réseau » contenant des ressources peut être organisé en sous‐répertoires visibles ou non par les utilisateurs : la gestion fine des droits donne beaucoup de souplesse au dispositif.

Un répertoire « Progs » permet de mettre à disposition très simplement des applications portables.

Deux sous‐répertoires sont disponibles :

  • rw (Read and Write) pour lequel les enseignants pourront écrire ;
  • ro (Read Only) pour lequel seul admin aura des droits d’écriture.

Un tel emplacement réseau sera très pratique pour des applications utilisées au quotidien comme Pronote : il suffira de faire la mise à jour du client sur ce lecteur et de seulement déployer un raccourci sur le bureau des utilisateurs.

Partages et droits fins

Là aussi, des partages sont disponibles en standard (classe, ressources…), mais d’autres partages peuvent être créés en fonction des besoins des enseignants.

On peut aussi gérer très précisément des listes de contrôle d’accès (ACL) sur les groupes et partages créés : lecture, écriture, exécution, pour un utilisateur, un groupe ou pour tous.

Usages pédagogiques

Distribution et récupération de devoirs, partage de ressources, répertoire d’échanges paramétrable par l’enseignant.

Gestion du réseau interne

Déploiement automatique de clients GNU/Linux (et Windows®), clonage des stations

Il s’agit d’une fonctionnalité clé : être capable d’installer de façon totalement automatisée une machine sortie du carton, ou de réinstaller à distance une machine défaillante.

Un amorçage réseau en iPXE permet de nommer une nouvelle machine, de lui associer un parc puis, toujours via cet amorçage iPXE, d’installer et d’intégrer automatiquement (et donc silencieusement) aussi bien un Windows 10 qu’un GNU/Linux (Debian Buster dans un environnement au choix : GNOME, KDE, Xfce, MATE…). Pour le moment l’automatisation du double amorçage n’est pas faite, mais tout est en place pour le faire.

De même, la fonction clonage diffère de ce qui est proposé par les autres solutions libres ou propriétaires  : il ne s’agit pas de déployer une image préalablement préparée, mais de cloner en direct une machine d’une salle sur l’ensemble des autres postes de celle‑ci, l’ensemble des phases de généralisation et de spécialisation étant totalement automatisées, ce clonage peut se faire à distance sans intervention physique. En effet, dans un établissement scolaire, les logiciels et matériels diffèrent d’une salle à l’autre, rendant inexploitable la génération d’images génériques à cloner. Si l’on ajoute les mises à jour, le stockage des images est définitivement une mauvaise idée (après cela reste possible, mais nécessite que des logiciels spécifiques puissent être déployés par WPKG). Bien entendu, ceci fonctionne pour Windows 10, mais également pour les GNU/Linux.

Gestion des parcs, des salles

Extinction automatique, démarrage automatique, déploiement d’applications, installation d’imprimantes.

Déploiement automatique d’applications

Les clients Windows sont gérés par l’intermédiaire de wpkg, plus de 160 applications sont disponibles directement dans SambaÉdu. Les clients GNU/Linux par l’intermédiaire de scripts « unefois » qui se lancent en tâches de fond, sans gêner le travail des utilisateurs.

L’ajout du support d’Ansible pour GNU/Linux est en cours d’évaluation.

Pour les Windows, Il est également possible d’utiliser WAPT qui est libre, un gros travail ayant été fait par l’académie de Rennes et Tranquil IT ; mais en l’état, l’intégration complète dans SambaÉdu complexifierait pas mal de choses, en nécessitant un serveur dédié supplémentaire. Nous voyons plutôt la mise en place d’un tel serveur comme une action à mener à l’échelle de la collectivité, plus que de l’établissement.

Gestion des imprimantes

Déploiement automatique, que ce soit pour des clients GNU/Linux ou des clients Windows. Sur Windows, les imprimantes sont déployées de façon native avec des stratégies de groupe (GPO), sans avoir besoin d’utiliser la console Microsoft…

Le serveur d’impression est Samba avec CUPS. Malheureusement, il n’existe pas de solution libre de comptabilisation des impressions et copies, et donc la seule solution est d’utiliser le logiciel propriétaire Papercut, qui a au moins l’avantage d’avoir une version GNU/Linux native qui s’installe sans problème sur SambaÉdu.

Configuration des postes Windows

Les stratégies de groupe (GPO) et préférences utiles sont automatiquement configurées dans l’interface SambaÉdu et se déploient de façon native via le serveur AD. Aucun agent n’est nécessaire sur le poste. L’usage de l’infâme console d’administration RSAT n’est pas indispensable pour les tâches habituelles.

Des stratégies mettant en œuvre les recommandations de l’ANSSI sont automatiquement déployées, notamment pour limiter la collecte des données et l’usage des services Microsoft Azure Cloud.

DHCP et réseaux locaux virtuels (VLAN)

Le serveur SE4 permet de gérer le service DHCP de l’ensemble du réseau, en prenant en compte les multiples réseaux locaux virtuels (VLAN) des architectures des établissements scolaires. Il permet d’effectuer des réservations d’adresses IP pour les clients et les imprimantes par sous‑réseau ; cette réservation étant possible dès la connexion iPXE pour les nouveaux postes.

État du déploiement

L’entreprise NéoFutur soutient l’association et le développement de la solution SambaÉdu4. Un partenariat a d’ailleurs été mis en place. Elle déploie la solution dans les établissements scolaires, effectue des migrations de la version SambaÉdu 3 vers la version SE4 ; elle propose en outre la maintenance de parcs.

Une cartographie des SE3 a été initiée, en attendant celle des SE4, version récente de la solution SambaÉdu. Chacun peut compléter cette cartographie.

D’ores et déjà, certains établissements scolaires, du « petit » collège de 500 utilisateurs, au « gros » lycée de plus de 2 000 utilisateurs, utilisent cette solution entièrement libre.

Choix techniques

Empaquetage

Un gros travail a été fait pour créer des paquets conformes aux standards Debian, et uniquement configurés via debconf. Les mises à jour sont donc facilitées et fiables. Ceci est un gage de pérennité. La pré‑configuration à l’aide fichiers texte et de preseed est possible et est utilisée par les différents scenarii de migration de serveurs SE3.

Interface d’administration

L’interface historique, basée sur PHP et MySQL était codée en PHP. La question s’est donc posée de tout reprendre depuis zéro avec des technologies actuelles. Étant donné que la plupart des utilitaires Samba sont écrits en Python, le choix de Django aurait pu sembler judicieux. Néanmoins, la quantité de travail à accomplir avant d’avoir un minimum de choses utilisables nous a dissuadé de nous lancer dans cette tâche. Nous sommes donc restés sur du PHP 7.3, avec une refonte importante des pages, mais sans pour autant faire de gros bouleversements. Étant donné qu’il s’agit d’une interface d’administration et non d’un site de production, ce choix n’est pas critique et le tout reste largement utilisable et intuitif.

En revanche, l’ensemble des fonctions sous‑jacentes de manipulation de l’AD, de Samba et du DHCP ont été réécrites en PHP, en s’efforçant d’avoir quelque chose de clair et facile d’utilisation. Ceci se fait souvent aux prix d’une certaine lenteur, particulièrement pour les requêtes LDAP qui gagneraient à être massivement mises en cache. Mais pour le moment, on a choisi de ne pas le faire pour privilégier la simplicité.

La principale nouveauté concerne l’automatisation des tâches d’installation, de clonage et de configuration. Au cours du processus, les clients à ordonnancer peuvent être sous différents systèmes d’exploitation : iPXE, WinPE, GNU/Linux ou Windows. Un service Web minimal, authentifié par un jeton a donc été mis en place et va générer des scripts iPXE, cmd, Bash ou XML qui seront interprétés par les clients à chaque étape.
Dans la mesure du possible tout a été fait pour éviter d’avoir à installer un agent sur les postes. L’installation initiale des GNU/Linux se fait donc en mode preseed, tandis que les Windows sont exclusivement configurés avec Windows Setup ou Sysprep, sans aucun script additionnel.

L’expérience du SE3 a montré qu’une des sources principales de problèmes sur les serveurs en production était le serveur MySQL, avec des soucis de bases à réparer manuellement suite à une coupure intempestive ou une mise à jour problématique. Pour SE4, le choix a donc été fait de ne faire dépendre aucun service important de MySQL.

Soutenir l’association

Vous pouvez soutenir l’association en y adhérant depuis le site sambaedu.org.

Commentaires : voir le flux atom ouvrir dans le navigateur

par GrosQuicK, denisb, msuquet, Snark, slift, keyser, Davy Defaud, Ysabeau, palm123, marc.bansse, BAud, ted, Benoît Sibaud, j

DLFP - Dépêches

LinuxFr.org

Diskio Pi : l’aventure continue

 -  12 février - 

Il y a un an, je vous avais raconté l’historique de mon projet Diskio Pi à travers une dépêche, suivie d’un journal pour expliquer ce qu’était ce (...)


LibreOffice, 10 ans, version 6.4

 -  7 février - 

La suite bureautique LibreOffice a dix ans cette année (déjà !) la version 6.4 vient de sortir. Il y a eu beaucoup de chemin parcouru depuis, à (...)


SimpleLogin, un outil open source pour protéger nos adresses de courriel

 -  7 février - 

Il est nécessaire d’utiliser une adresse de courriel différente pour chaque site ou service pour diverses raisons, notamment éviter le pourriel ou (...)


Sortie de Crème CRM en version 2.1

 -  4 février - 

Le 6 janvier 2020 est sortie la version 2.1 du logiciel de gestion de la relation client Crème CRM (sous licence AGPL-3.0). La précédente version (...)


FreeNAS 11.3

 -  2 février - 

Le 20 janvier 2020, FreeNAS 11.3 a été publié. FreeNAS est un système d’exploitation libre pour serveurs de stockage en réseau, basé sur FreeBSD. (...)