Proxmox en tant que plateforme pour des TP

Rédigé par Fenix - - Aucun commentaire

J'ai récemment eu l'occasion d'intervenir pendant 4 jours en école d'ingénieur.e.s. Le thème : la supervsion. Les moyens : limités.

Et nous avons pourtant pu travailler dans des conditions suffisantes grâce à Proxmox.

Le contexte

 

Pour redonner un peu de contexte, la formation dans laquelle je suis intervenu est une formation en alternance : en face de moi, j'avais donc des apprenti.e.s, en dernière année, qui chacun.e disposait déjà d'un bagage technique et d'une culture d'entreprise. Difficile donc de prévoir de grands discours théoriques ou des exercices de prise en main uniformes : ce public est exigeant et attend des résultats rapides et concrets (je suis passé par là aussi).

Il me fallait donc, en complément des éléments de cours (orientés pour une compréhension rapide et parsemés d'exemples réels), prévoir des TP qui soient à la fois pertinents (qui exposent des cas réalistes, qu'on retrouve en entreprise) et réalisables. Par "réalisable", j'entends "sans matériel supplémentaire".

 

Parce que oui, je n'avais que très peu de matériel à disposition.

 

A la décharge de l'école, la salle avec le matériel réseau venait tout juste d'être réaménagée, donc pas encore officiellement ouverte. A cela s'ajoutent les traditionnels problèmes de Wifi complètement saturé et de fibre < 300M pour un campus de plusieurs sites accueillant des centaines d'étudiant.e.s et des laboratoires de recherche : pas terrible pour installer des packages en TP.

Dois-je ajouter que les étudiant.e.s devaient utiliser soit leur machine personnelle, soit une machine de prêt mise à disposition par l'école ? Je vous laisse imaginer les capacités physiques des-dites machines...

 

Bref.

 

L'approche

 

Dans ce contexte, j'ai donc pris la décision de jouer la tactique de l'escargot : ne miser que sur ma coquille. L'idée était de travailler en vase (quasi) clos, dans une seule machine virtuelle, et de pouvoir déployer à loisir et en quelques secondes des Debian ou des CentOS pour les différents TP. En complément, j'avais envisagé d'emmener sur mon poste des copies des différents repositories dont nous allions dépendre, au cas où la connexion Internet soit vraiment désastreuse ; heureusement, nous n'en aurons pas eu besoin (mais l'année prochaine, la question se posera à nouveau).

 

J'aurais pu opter pour une approche full-Docker, mais d'une part tout ne s'y prête pas, et d'autre part je souhaitais vraiment leur amener la compréhension des différentes couches que nous devions installer.

J'aurais pu leur faire déployer plusieurs VM, mais au vu des capacités des machines à disposition, ça aurait été laborieux.

J'aurais pu les faire travailler "dans le Cloud" sur mon infra personnelle, en créant des comptes et des pools de ressources pour chacun.e, mais j'avais quelques craintes concernant la bande passante disponible à l'école ; l'année prochaine, peut-être ?

 

J'ai donc installé une Debian 10 avec 4Go de RAM, un environnement de bureau Mate, et greffé un Proxmox par-dessus. Le tout en quelques minutes. Une règle de NAT à configurer pour que les LXC puissent sortir sur Internet, le téléchargement des templates qui vont bien (Debian, Ubuntu, CentOS), et l'ajout d'un second disque pour le déploiement des-dits LXC, et voilà. Côté sécurité, rien de particulier : iptables qui bloque tout en INPUT (pour éviter les facéties entre étudiant.e.s...), un ublock-origin pour Firefox (pour les quelques documentations à aller chercher), et c'est tout. Un lien envoyé aux élèves pour le téléchargement de la VM, mission accomplie.

 

Sauf que.

Sauf qu'il fallait bien qu'un étudiant décide de ne pas suivre les consignes ("importer la VM dans VirtualBox") et décide d'utiliser directement libvirt sur son ArchLinux bien customisé (enfin, une Manjaro pour être précis), pour au final perdre une 1/2 journée de TP complète (et devoir capituler et installer VirtualBox le soir pour rattraper le TP).

Sauf qu'il fallait bien que seul.e.s 2 élèves aient téléchargé la VM en amont du cours, comme demandé, et qu'on perdre joyeusement 30 min d'échanges de clés USB (la sécurité, tout ça tout ça).

Et qu'on attende que les disques mécaniques des portables de l'école veuillent bien importer cette petite VM de 4,5Go.

 

Re-bref.

 

Le bilan

 

Début du 1er TP, petite présentation rapide de la plateforme, et j'ai tout de suite senti que les élèves appréciaient : une GUI (Mate + Proxmox) pour gérer tous les conteneurs, les backups, la configuration réseau... et aucune dépendance au monde extérieur (accès Internet mis à part). Tout le monde n'ayant pas un profil "tech" (certain.e.s sont plutôt sur de la gestion de projet, par exemple), l'outil n'était plus un frein pour appréhender les notions du cours.

 

Et nous avons pu travailler.

Un TP sur Centreon ? On déploie des CentOS, nos pollers, etc.

Un TP sur LibreNMS ? Allez, une petite Ubuntu 18.04, tiens.

Du Prometheus, du Grafana ? Vous voulez du Debian 10 ?

Un setup un peu long à mettre en place et qui n'a pas d'intérêt à être déroulé à la main ? Voici le tar.gz qui va bien et restaurez le container via la GUI.

 

Chaque élève ayant son propre /24 local, aucun problème réseau. Tout le monde peut déployer autant de LXC que nécessaire, tout le monde peut casser son setup et repartir de zéro à tout moment. Et si on avait voulu faire quelque chose de plus complexe (avec des routeurs OpenBSD par exemple, pour simuler des "sites distants" à superviser), on aurait pu (mais physiquement parlant les machines étaient déjà un peu à bout).

Un vrai petit succès !

 

Le futur

 

Pour l'année prochaine, j'aimerais améliorer les choses.

L'idée de créer des comptes et des pools de ressources sur ma propre infra ne m'enchante pas trop : en théorie, c'est à l'école de fournir les moyens de travailler. En revanche, ce setup est un peu trop "cloisonné", et même si c'était son objectif pour cette première année, j'aimerais rendre les TP un peu plus interactifs, en faisant superviser aux élèves les machines des autres. Et y intégrer du matériel réseau, hein, bon, quand même.

J'ai également eu quelques déboires avec le thin-LVM qui servait pour stocker les LXC : de façon aléatoire, Proxmox ne parvenait plus à y accéder, et même si manuellement on parvenait à monter les lv, impossible d'en faire quoique ce soit. Redémarrage obligatoire, mais par rapport aux gains de temps apportés par cette solution, ça restait tout à fait acceptable (quelques trous dans les graphes de nos outils de supervision, tout au plus :D). J'aimerais trouver la cause de ces coquineries pour trouver une meilleure approche l'année prochaine (tout en gardant la possibilité de faire des snapshots). A voir.

 

Re-re-bref : Proxmox, c'est bon, mangez-en !

Classé dans : formation - Mots clés : aucun

Écrire un commentaire

Quelle est le quatrième caractère du mot 9vz8rn ?