Ich bin ein TA für einen Programmierkurs und habe die Aufgabe, ein virtuelles Maschinen-Image auf der Basis von Ubuntu 14.04 LTS mit der erforderlichen Software (für die C ++ - und Python-Entwicklung) zu erstellen, die so vorinstalliert ist, dass auf allen Schülern dasselbe virtuelle System ausgeführt wird, und wir vermeiden die Probleme alles auf einer Vielzahl von verschiedenen Maschinen und Betriebssystemen zum Laufen zu bringen. Wir beabsichtigen, Virtual Box als Host-VM-Software zu verwenden, da es kostenlos und plattformübergreifend verfügbar ist.
Naiv, ich würde einfach das Ubuntu 14.04 LTS Disk-Image verwenden, es in meiner Virtual Box ausführen, es auf der virtuellen Festplatte (VDI) installieren, ein "Student" -Konto mit einem vordefinierten Passwort einrichten, die gesamte erforderliche Software installieren, schließen Fahren Sie die virtuelle Maschine herunter und verteilen Sie die VDI-Datei. Wir bitten jeden Schüler, das VDI in Virtual Box zu importieren, es auszuführen und sein persönliches Konto einzurichten (oder einfach das Standardschülerkonto zu verwenden).
- Ist das obige Verfahren durchführbar?
- Worauf ist zu achten? Wir brauchen das, um ziemlich idiotensicher zu sein. Wir erwarten 80+ Studenten und sind nur vier TAs, daher können wir keine individuelle Unterstützung bieten.
- Gibt es Nachteile bei der Verwendung einer dynamisch zugewiesenen virtuellen VDI-Festplatte?
- Ist es für mich in Ordnung, die Guest Additions von Virtual Box von Anfang an zu installieren, oder kann es etwas Host-spezifisches tun?
- Gibt es eine elegantere Möglichkeit, die Erstellung eines Benutzerkontos zu handhaben? Im Idealfall führt Ubuntu sie beim ersten Start des Images durch einen Assistenten zum Erstellen eines Kontos und lässt sie ihre Passwörter festlegen (sowie sie zur sudoers-Datei hinzufügen). Dies ist jedoch keine Priorität. Ich denke, ein Standardkonto ist in Ordnung.
quelle
Antworten:
Während diese Frage zu einem gewissen Grad eine Meinung ist:
Ja, dieses Verfahren ist durchführbar - ich glaube, es würde das erreichen, wonach Sie suchen, und es ist etwas, was ich in der Vergangenheit mit anderen Linux-Distributionen getan habe.
Das einzig wahre Problem ist der Festplattenabstand. Vergewissern Sie sich, dass Ihre Schülercomputer über ausreichend Festplattenspeicher verfügen, um die Größe der virtuellen Festplatte zu bewältigen. Stellen Sie außerdem sicher, dass Sie eine Kopie auf mindestens einem Computer offline halten, damit Sie mithilfe der Vorlage / des Referenzdatenträgers schnell einen Datenträger neu erstellen können, wenn ein Schüler seinen Computer beendet.
Der Nachteil einer dynamischen Festplatte besteht darin, dass das Host-Betriebssystem immer mehr Festplattenspeicher zuweisen muss, wenn die VM mit Daten / Aktualisierungen wächst. Dies hat einen Performance-Overhead, der manchmal Kopfzerbrechen bereiten kann - insbesondere, wenn Sie auf einer VM mit niedriger Leistung arbeiten (Host-Rechner-Strom minus Strom, der zum Erweitern einer Festplatte verwendet wird, führt dazu, dass VMs etwas nacheilen) dann nicht portierbar (möglicherweise haben nicht alle Computer in Ihrem Labor mehr als 100 GB, sobald ein Schüler mit seiner VM in Konflikt geraten ist)
Gast-Addons sind nicht maschinenspezifisch. Sie sind so ziemlich ein Treibersatz. Wenn Sie die VM in einen neuen Host importieren, werden die VM-Treiber Ihre Hardware erkennen und optimieren, damit sie auf dem neuen Host funktioniert.
Elegante Benutzererstellung - Sie sind sich nicht sicher, ob ein Skript beim ersten Start ausgeführt wird und einen Benutzer auffordert, ein neues Konto zu erstellen, bevor sich das Skript selbst zerstört? Ich werde ein bisschen graben und mich bei Ihnen melden, wenn ich 5 Minuten Zeit habe.
Hoffe das hilft zumindest teilweise.
quelle
Wenn Sie Ihre Frage genau beantworten müssen, um die VM anzupassen und eine lieferbare VirtualBox-VM zu übergeben, empfehle ich, Packer zu verwenden, um die VM mit allen erforderlichen Abhängigkeiten vorab zu packen. Es wurde speziell für diesen Zweck entwickelt und ermöglicht es Ihnen, ein Image von einem ISO-Image zu erstellen , die gewünschten Provisionierungen für dieses Image durchzuführen und anschließend ein zu lieferndes VirtualBox-VM-Image zu erstellen. Dies ist auch für Sie von Vorteil, da es genau dokumentiert, was mit dem Ergebnis gemacht wurde, falls Sie es jemals reproduzieren oder etwas hinzufügen möchten. Sie können das Projekt auch in ein Versionsverwaltungssystem einchecken und Änderungen vornehmen. Hier ist ein Beispiel dafür, wie Sie anfangen können.
Wenn Sie jedoch möchten, dass sie schnell zum Laufen kommen, empfehle ich, Vagrant zu verwenden und Ihren Schülern eine Vagrant- Datei zu übergeben, die die gewünschte Bereitstellung für ein Standard-Ubuntu-Image vornimmt . Dies hat mehrere Vorteile:
Hier ist ein Beispiel für Vagrantfile, in dem gezeigt wird, wie ein Ubuntu 14.04-Image bereitgestellt wird.
quelle
Perfekt machbar. Die Alternative wäre Vagrant, Puppet, Chef oder ähnliches, um die VMs von Grund auf neu zu bauen, aber das ist eine Menge Arbeit, die eingerichtet werden muss.
Das Entwicklungsteam auf einer meiner Sites unternimmt dasselbe, um neue Entwickler schnell zum Laufen zu bringen.
1 voreingestelltes Konto (mit Sudo-Rechten) im Bild und eine kurze Anleitung mit den Schritten, die sie ausführen müssen, um ihr persönliches Konto zu erstellen.
Bitte beachten Sie: Sie benötigen höchstwahrscheinlich einen Netzwerk- / Internetzugang in der VM. Dies kann entweder überbrückt oder per NAT auf den Host übertragen werden. Unabhängig davon, welche Option Sie auswählen, müssen Sie Ihre Schüler anweisen, die Host-Seite davon zu konfigurieren. Richten Sie einfach die Netzwerkkarte in der VM als DHCP-Gerät ein. Dies ist ein sicherer Ausgangspunkt für die meisten Konfigurationen, auch wenn der Benutzer später eine statische IP-Adresse manuell konfigurieren muss.
Das Einfügen einer statischen IP-Adresse in die VM ist wirklich problematisch. Es wird bestimmt schon von einer anderen VM benutzt, die im selben LAN online geht ...
quelle