Je suis un assistant technique pour un cours de programmation et je suis chargé de créer une image de machine virtuelle basée sur Ubuntu 14.04 LTS avec tous les logiciels nécessaires (pour le développement C++ et Python) préinstallés de sorte que les étudiants exécutent tous le même système virtuel et évitent les difficultés. de tout faire fonctionner sur une variété de machines et de systèmes d’exploitation différents. Nous avons l’intention d’utiliser Virtual Box en tant que logiciel Host VM, car il est gratuit et multiplate-forme.
Naïvement, je voudrais simplement utiliser l'image disque Ubuntu 14.04 LTS, l'exécuter dans ma boîte virtuelle, l'installer sur le disque dur virtuel (VDI), configurer un compte "étudiant" avec un mot de passe prédéfini, installer tous les logiciels nécessaires, fermer la machine virtuelle et distribuez le fichier VDI. Nous demandons à chaque étudiant d'importer le VDI dans Virtual Box, de l'exécuter et de configurer son compte personnel (ou simplement d'utiliser le compte étudiant par défaut).
Bien que cette question repose en quelque sorte sur l'opinion:
Oui, cette procédure est viable - je crois que cela permettrait d’atteindre ce que vous recherchez et c’est quelque chose que j’ai fait par le passé avec d’autres distributions Linux.
L'espacement des disques est le seul véritable problème: assurez-vous que les ordinateurs de vos étudiants disposent de suffisamment d'espace disque pour gérer la taille du disque virtuel. Assurez-vous également de conserver une copie hors ligne sur au moins un ordinateur afin de pouvoir utiliser le disque de modèle/de référence pour recréer rapidement un disque lorsqu'un élève tue son ordinateur.
L'inconvénient d'un disque dynamique est que le système d'exploitation hôte doit continuer à allouer de plus en plus d'espace disque à mesure que la VM grandit avec les données/mises à jour. Cela entraîne parfois une surcharge de performances qui peut parfois être source de maux de tête, en particulier si vous utilisez une machine basse tension VM (la puissance de la machine hôte utilisée pour développer un disque a tendance à ralentir un peu les machines virtuelles) Cela rend également potentiellement inutilisable (toutes les machines de votre laboratoire peuvent ne pas disposer de 100 Go + une fois qu'un étudiant a manipulé leur ordinateur virtuel)
Les addons invités ne sont pas spécifiques à la machine, ils constituent plutôt un ensemble de pilotes. Lorsque vous importez la VM dans un nouvel hôte, les pilotes VM détecteront et ajusteront votre matériel pour qu'il fonctionne sur le nouvel hôte.
Création élégante d'utilisateur - pas sûr, peut-être un script qui s'exécute au premier lancement et demande à un utilisateur de créer un nouveau compte avant que le script ne s'autodétruise? Je vais faire quelques recherches et je reviendrai vers vous quand il me restera 5 minutes.
J'espère que cela aide au moins en partie.
Répondant exactement à votre question, si vous devez personnaliser le VM et lui remettre un ordinateur virtuel VirtualBox livrable, je vous recommande d’utiliser Packer pour pré-emballer le VM avec tous les dépendances requises. Il est conçu uniquement pour cela et vous permet de créer une image image provenant d'un ISO , d'effectuer le provisionnement souhaité sur cette image, puis de créer une image VirtualBox VM livrable. C’est bon pour vous aussi, car il documente exactement ce qui a été fait pour le produit à livrer au cas où vous voudriez le reproduire/ajouter quelque chose. En outre, vous pouvez archiver le projet dans un système de contrôle de source et y apporter des modifications. Voici un exemple de cela pour vous aider à démarrer.
Cependant, si vous voulez qu'ils s'exécutent rapidement, je vous recommande d'utiliser Vagrant et de distribuer à vos étudiants un fichier Vagrant qui effectue le provisioning souhaité sur une image Ubuntu standard . Cela présente plusieurs avantages:
Voici n exemple de Vagrantfile montrant comment effectuer du provisioning sur une image Ubuntu 14.04.
Parfaitement faisable. L'alternative serait Vagrant, Puppet, Chef ou quelque chose de similaire pour construire les VM à partir de rien, mais cela demande beaucoup de travail.
L'équipe de développement de l'un de mes sites fait de même pour que les nouveaux développeurs soient rapidement opérationnels.
1 compte prédéfini (avec les droits Sudo) dans l’image et un court document d’instruction indiquant les étapes à suivre pour créer son compte personnel.
Remarque: vous avez probablement besoin d'un accès réseau/Internet à l'intérieur de la machine virtuelle. Cela peut être ponté ou NAT sur l’hôte. Indépendamment de ce que vous choisissez, vous devrez expliquer à vos étudiants comment configurer le côté hôte de cette opération. Configurez simplement le NIC à l'intérieur du VM en tant que périphérique DHCP. C’est un point de départ sûr pour la plupart des configurations, même si l’utilisateur doit ultérieurement configurer manuellement une adresse IP statique.
Mettre une adresse IP statique dans le VM pose vraiment problème. Il est déjà lié à être déjà utilisé par un autre VM se connectant sur le même réseau local ...