Vous souhaitez distribuer une machine virtuelle Linux sur laquelle les étudiants peuvent travailler

25

J'ai des étudiants qui exécutent Mac et Windows. Chaque semestre, il y a toujours beaucoup de questions sur la façon d'installer l'outil «X». Je voudrais créer une seule machine virtuelle Linux (j'ai essayé VirtualBox) et distribuer l'image. De cette façon, tous les outils sont préinstallés et tout le monde utilise Linux.

La question est, étant donné que les gens ont un matériel graphique différent, comment cela fonctionne-t-il? Ou ça marche? Et si c'est le cas, comment puis-je le distribuer? Doivent-ils installer VirtualBox, puis charger un fichier que je leur donne, ou puis-je créer facilement un seul programme d'installation?

Dov
la source
13
Virtualbox vous permet d'exporter un Appliance . Ce fichier peut être importé dans n'importe quel logiciel de virtualisation (VMWare, Virtualbox etc.) et se configure sur le matériel local. Cela semble être ce que vous demandez. Un seul programme d'installation n'est pas possible, car vous ne pouvez pas exécuter le même programme sur WIndows (.exe) et Mac (.app).
GiantTree
Dois-je réinstaller différemment ou puis-je enregistrer ma machine virtuelle en tant qu'appliance?
Dov
Vous pouvez enregistrer n'importe quelle machine virtuelle en tant qu'appliance dans Virtualbox. Il suffit de faire: Fichier -> Exporter l'
appliance
Certains suggèrent Vagrant comme solution car la taille du fichier peut être un problème lors des téléchargements de votre fichier d'appliance. À vrai dire, si vous installez un environnement minimaliste et utilisez un provisionnement fin lors de la création du disque dur virtuel, vous pourriez vous retrouver avec un fichier de 100 Mo ou moins très faisable. Je voulais juste ajouter cela car personne d'autre ne l'a abordé.
Geruta
1
@gronostaj: Cela ressemble un peu à cette pauvre machine virtuelle prise dans la matrice! : O
Zaibis

Réponses:

24

J'aime la réponse centrée sur le vagabond de mperrin , mais comme vous pouvez le voir dans les commentaires, mon opinion personnelle est de «garder les choses simples» et je recommanderais une simple exportation d'un OVA VirtualBox comme vous l'avez configuré et en le transmettant à vos étudiants .

Cela dit, vous demandez ceci:

La question est, étant donné que les gens ont un matériel graphique différent, comment cela fonctionne-t-il? Ou ça marche? Et si c'est le cas, comment puis-je le distribuer? Doivent-ils installer VirtualBox, puis charger un fichier que je leur donne, ou puis-je créer facilement un seul programme d'installation?

Virer dans DevOps

Je ne suis pas trop sûr de ce que vous enseignez ou faites ou de ce que vous attendez de vos élèves de tout cet exercice, mais beaucoup des préoccupations que vous exprimez vont dans le domaine du DevOps (développement et opérations) et vous voudrez peut-être d'envisager de mélanger ce concept dans vos enseignements.

Maintenant, je ne pense pas que tout le concept de DevOps doive être véhiculé, mais dans mon esprit, votre création d'un OVA VirtualBox stable que vous transmettez ensuite aux élèves et leur demandez d'utiliser sur leurs machines à la maison / à l'école ouvrirait certainement une porte à des questions sur la façon de gérer les différentes configurations matérielles / système et sur la manière de s’adapter.

Donc, ma recommandation pour vous est de recommander fortement aux étudiants d'utiliser l'OVA VirtualBox que vous souhaitez configurer, mais également d'être ouvert à permettre aux étudiants d'installer simplement des outils par eux-mêmes. Mon instinct me dit que 95% - ou plus - des étudiants utiliseraient volontiers et facilement la méthode VirtualBox OVA, mais vous ne pouvez pas vous attendre à ce qu'elle soit 100% parfaite.

Peut-être qu'en fin de compte, vous devriez simplement avoir une base d'exigences pour l'utilisation des outils de cours et être flexible dans leur mise en œuvre.

Soyez flexible quant à la façon dont les outils sont utilisés

Par exemple, je fais beaucoup de développement PHP et je fais de l'administration de systèmes / DevOps liés au développement PHP. Et comme je suis sur un Mac, je préfère utiliser MAMP pour le développement local. Mais je travaille avec des développeurs qui utilisent Linux ou Windows pour leur développement. Heck, certains aiment utiliser Vagrant couplé à VirtualBox pour leurs besoins de développement LAMP. Et mon attitude est que je me fiche de la configuration de base de leur système d'exploitation. Tant que leur version PHP est en ligne avec les versions que mes clients utilisent, je vais bien avec quoi que ce soit.

Parfois, un développeur indiquera qu'un bogue est dû au fait que, par exemple, le code que j'ai testé sur MAMP n'est «pas le même» que celui qui serait sur une configuration Linux LAMP. Et je dis avec 100% de confiance, que j'ai toujours prouvé que le problème n'est pas le système d'exploitation de base mais plutôt le codage PHP lui-même.

Donc, tout ce bluff est essentiellement de transmettre ce qui suit: Soyez simplement flexible dans votre explication de l'utilisation d'une configuration VirtualBox aux étudiants et ne vous attendez pas à ce que l'alimentation d'un système d'exploitation à la cuillère finisse simplement tous les problèmes. Cela pourrait éliminer 95% de vos problèmes du parc, mais les 5% restants devront toujours être traités d'une manière ou d'une autre. Considérez donc une configuration VirtualBox - et peut-être un script Vagrant - comme un outil qui peut être utilisé dans un arsenal pour rendre la vie plus facile pour certains, mais pas nécessairement la solution finale pour tous les problèmes.

JakeGould
la source
3
enseigner le C ++, java, les structures de données, et c'est une tentative de s'éloigner de sysadmin / devops qui ne m'intéresse pas!
Dov
1
@Dov Eh bien, si tel est le cas, exporter la VirtualBox OVA et la distribuer aux gens de votre classe est la meilleure solution.
JakeGould
18

Vous devriez jeter un œil à Vagrant .

Vagrant prend en charge VirtualBox et vous permet de:

Créez et configurez des environnements de développement légers, reproductibles et portables.

Il sera beaucoup plus facile de partager un seul ou un tas de fichiers texte qu'une grande exportation d'image VirtualBox. Surtout si vous souhaitez gérer les mises à jour.

Une fois VirtualBox et Vagrant installés, un simple:

vagrant up

Volonté:

Un seul fichier Vagrant peut également gérer les spécificités des hôtes Windows ou Mac.

mperrin
la source
7
Bien que Vagrant ne soit pas une mauvaise idée, il suffit d'exporter un appareil VirtualBox, de demander aux étudiants d'installer VirtualBox et de les faire ensuite importer cet appareil dans VirtualBox pour faire le travail en quelques étapes sans Vagrant reconstruire littéralement une machine à partir de zéro ou courir le risque de Vagrant idiosyncrasies surgissant dans le mélange.
JakeGould
1
Vous avez raison, les exportations sont sûrement l'approche la plus simple et la plus simple. Mais selon les besoins, j'ai pensé que vagabond devait être mentionné ici. La gestion des chargements / téléchargements de fichiers ovules volumineux peut être problématique, surtout si les mises à jour doivent être effectuées par projet. Plus de comparaison sur les deux approches peut être trouvée dans ce très bon fil superuser.com/questions/584100/…
mperrin
Assez bonnes notes sur cet autre post. Mon sentiment est le suivant: si vous sentez que vous avez besoin de Vagrant pour déployer plus de 2 serveurs via des scripts, allez-y. Mais pour la plupart des utilisateurs de bureau et des développeurs simples, le simple fait de «rouler le vôtre» via VirtualBox fonctionne aussi bien.
JakeGould
1
Dans votre cas, un autre avantage de vagabond par rapport à une exportation est la possibilité pour vos élèves d'apprendre comment "installer" et configurer l'image en inspectant le script de provisioning. Beaucoup plus facile que de parcourir l'histoire de l'image.
mperrin
8

Cela n'aurait aucune importance - virtualbox (et bien tous les autres logiciels de virtualisation) émule son propre adaptateur vidéo (logique cirrus IIRC). Bien que le fichier de la boîte virtuelle traditionnelle soit divisé en différents fichiers pour les paramètres et le stockage, vous pouvez l'exporter dans un fichier ovf comme suggéré. Si vos élèves peuvent installer virtualbox ou vmware, cela devrait être trivial. Sinon, ils ont besoin d'apprendre.

L'installation de virtualbox est assez banale (en supposant que vous ayez un support matériel).

Il y a quelques choses que je suggérerais - garder la machine virtuelle à 32 bits (donc vous n'avez pas à vous soucier de la prise en charge de VT-X sur l'hôte), créer un guide pour installer virtualbox sur les 2 gros OS (Windows est simple, linux a besoin de quelques étapes supplémentaires) et d'importer le fichier OVF. Cela signifie également que si les étudiants souhaitent utiliser vmware player ou similaire, ils le peuvent. Utilisez NAT pour la mise en réseau, sauf si vous devez exécuter un serveur accessible de l'extérieur.

Si les performances ne sont pas un problème, vous pouvez probablement tout regrouper dans une instance QEMU (ils peuvent être configurés pour exécuter un contenu autonome) et des scripts de démarrage appropriés. Je considérerais cela comme un dernier recours.

Je noterais que de nombreuses universités fournissent réellement une machine virtuelle avec des outils appropriés ( stanfords CS 50 de l'IICC , et c'est un cours librement disponible d'edx), il pourrait donc être utile de voir comment ils le font.

Compagnon Geek
la source
3

Comme alternative à la plupart des technologies de virtualisation, Linux (par exemple Ubuntu) peut être installé sur une clé USB. Presque tous les ordinateurs démarrent à partir d'une clé USB, et la plupart des installateurs modernes détectent les cartes graphiques / cartes réseau au démarrage. Si vous installez un Ubuntu 32 bits, il fonctionnera sur presque tout le matériel que les gens sont susceptibles d'avoir à la maison.

Ils sont faciles à distribuer et ne nécessitent AUCUN logiciel supplémentaire installé. Ils peuvent également être facilement déplacés d'une machine à l'autre - débranchez l'ordinateur de l'école, mettez-le dans votre poche. Lorsque vous rentrez chez vous, il suffit de le brancher.

Ils peuvent être obtenus à bon marché (je me rends compte que les budgets des écoles sont très limités!); en fonction de l'application qui serait exécutée sur la machine, 4 Go devraient suffire, peut-être 8 Go.

AMADANON Inc.
la source
Tout le monde à l'école diplômée a un ordinateur portable. Je ne pense pas qu'il soit nécessaire d'utiliser une clé USB.
Dov
1

Une autre option à considérer. Si vous n'êtes pas vraiment inquiet qu'ils aient une interface graphique, vous pouvez utiliser quelque chose comme terminal.com .

Vous pouvez créer votre propre instantané public et simplement le garder à la disposition de vos élèves. C'est similaire à l'approche VirtualBox, mais plutôt que d'installer les VM sur leur propre machine, c'est sur le cloud la machine de quelqu'un d'autre.

Alors tout ce dont ils ont besoin un navigateur Web suffisamment moderne. Et s'ils sont intéressés, ils peuvent le configurer pour pouvoir utiliser SSH / Putty / etc.

Selon leurs chiffres, si les étudiants utilisent la micro-instance (256 Mo de RAM, quelques Go d'espace disque), s'ils mettent la VM en pause lorsqu'ils ne l'utilisent pas, cela leur coûterait 9 $ / an de l'exécuter pendant 8h / journée. Je ne peux pas parler pour terminal.com, mais je soupçonne que si vous les avez contactés, ils pourront peut-être vous offrir une sorte de réduction éducative.

Wayne Werner
la source
Un service similaire est l'accès gratuit au shell public de [SDF.org] (sdf.org/?join) pour les enseignants. Enseigner la FAQ . Pas une VM, mais c'est quand même bien.
HSchmale