Je suis un assistant technique pour un cours de programmation et 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 telle sorte que les étudiants ont tous le même système virtuel en marche et nous évitons 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 VM hôte car il est gratuit et disponible sur plusieurs plates-formes.
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), créer un compte "étudiant" avec un mot de passe prédéfini, installer tous les logiciels nécessaires, fermer sur 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).
- La procédure ci-dessus est-elle viable?
- Quels sont les écueils à surveiller? Nous avons besoin que cela soit à peu près infaillible. Nous attendons plus de 80 étudiants et ne sommes que quatre assistants d'enseignement, nous ne pouvons donc pas fournir un soutien individuel.
- Y a-t-il des inconvénients à utiliser un disque dur virtuel de type VDI alloué dynamiquement?
- Puis-je installer les ajouts d'invité de Virtual Box dès le départ ou est-ce que cela fait quelque chose de spécifique à l'hôte?
- Existe-t-il une manière plus élégante de gérer la création de compte utilisateur? Idéalement, Ubuntu leur ferait passer un assistant de création de compte et leur demanderait de définir leurs mots de passe (ainsi que de les ajouter au fichier sudoers) la première fois qu'ils démarreraient l'image. Ce n'est cependant pas une priorité. Je suppose qu'avoir un compte par défaut est bien.
la source
Réponses:
Bien que cette question soit quelque peu basée sur une certaine opinion:
Oui, cette procédure est viable - je crois qu'elle accomplirait ce que vous recherchez et c'est quelque chose que j'ai fait dans le passé avec d'autres distributions Linux.
Le seul véritable écueil réside dans l'espacement des disques ... assurez-vous que les machines de vos élèves disposent d'un espace disque suffisant pour gérer la taille du disque virtuel. Assurez-vous également de conserver une copie hors ligne sur au moins une machine afin de pouvoir utiliser le modèle / disque de référence pour recréer rapidement un disque lorsqu'un élève tue sa machine.
Les inconvénients d'un disque dynamique sont que le système d'exploitation hôte doit continuer d'allouer de plus en plus d'espace disque à mesure que la machine virtuelle grandit avec les données / mises à jour. Cela a un surcoût de performance qui peut parfois être un casse-tête - surtout si vous exécutez sur une machine virtuelle de faible puissance (la puissance de la machine hôte moins la puissance utilisée pour étendre un disque a tendance à ralentir un peu les machines virtuelles). puis non portable (toutes les machines de votre laboratoire peuvent ne pas avoir 100 Go + une fois qu'un étudiant a gâché sa machine virtuelle)
Les modules complémentaires invités ne sont pas spécifiques à la machine .. ils sont à peu près un ensemble de pilotes. Lorsque vous importez la machine virtuelle dans un nouvel hôte, les pilotes de machine virtuelle détecteront et modifieront votre matériel pour fonctionner sur le nouvel hôte.
Création d'utilisateur élégante - 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 creuser et vous recontacter lorsque j'aurai 5 minutes à perdre.
J'espère que cela aide au moins en partie.
la source
Répondant exactement à votre question, si vous avez besoin d'adapter la machine virtuelle et de lui remettre une machine virtuelle VirtualBox livrable, je recommande d'utiliser Packer pour préemballer la machine virtuelle avec toutes les dépendances requises. Il est conçu à cet effet et vous permet de faire tourner une image à partir d' une image ISO , d'effectuer tout approvisionnement souhaité contre cette image, puis de créer une image VM VirtualBox livrable. Cela est également bon pour vous car il documente exactement ce qui a été fait pour le livrable au cas où vous voudriez le reproduire / ajouter quelque chose. Vous pouvez également archiver le projet dans un système de contrôle de source et apporter des modifications. Voici un exemple de ce qui est fait pour vous aider à démarrer.
Cependant, si vous souhaitez qu'ils fonctionnent rapidement, je recommande d'utiliser Vagrant et de distribuer à vos étudiants un Vagrantfile qui effectue le provisioning souhaité dont vous avez besoin sur une image Ubuntu standard . Cela présente plusieurs avantages:
Voici un exemple de Vagrantfile montrant comment effectuer un approvisionnement sur une image Ubuntu 14.04.
la source
Parfaitement réalisable. L'alternative serait Vagrant, Puppet, Chef ou quelque chose de similaire pour construire les VM à partir de zéro, mais c'est beaucoup de travail à configurer.
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 sudo-droits) dans l'image et un bref document d'instructions avec les étapes à suivre pour créer leur 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 NATté sur l'hôte. Quel que soit votre choix, vous devrez expliquer à vos élèves comment configurer le côté hôte de cette opération. Configurez simplement la carte réseau à l'intérieur de la machine virtuelle en tant que périphérique DHCP. Il s'agit d'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 la machine virtuelle pose vraiment des problèmes. Il est lié à être déjà utilisé par une autre machine virtuelle se connectant sur le même réseau local ...
la source