Verteilen Sie die virtuelle Linux-Maschine, an der die Schüler arbeiten können

25

Ich habe Schüler mit Mac und Windows. In jedem Semester gibt es viele Fragen zur Installation des Tools „X“. Ich möchte eine einzelne virtuelle Linux-Maschine erstellen (ich habe VirtualBox ausprobiert) und das Image verteilen. Auf diese Weise sind alle Tools vorinstalliert und alle verwenden Linux.

Die Frage ist, wie dies funktioniert, wenn die Leute unterschiedliche Grafikhardware haben. Oder geht das? Und wenn ja, wie verteile ich es? Müssen sie VirtualBox installieren und dann eine Datei laden, die ich ihnen gebe, oder kann ich einfach ein einzelnes Installationsprogramm erstellen?

Dov
quelle
13
Mit Virtualbox können Sie eine Appliance exportieren . Diese Datei kann in jede Virtualisierungssoftware (VMWare, Virtualbox usw.) importiert werden und konfiguriert sich selbst auf die lokale Hardware. Dies scheint das zu sein, wonach Sie fragen. Ein einzelnes Installationsprogramm ist nicht möglich, da Sie nicht dasselbe Programm unter Windows (.exe) und Mac (.app) ausführen können.
GiantTree
Muss ich neu installieren oder kann ich meine virtuelle Maschine als Appliance speichern?
Dov
Sie können jede virtuelle Maschine als Appliance in Virtualbox speichern.
Gehen Sie einfach wie folgt vor
Einige schlagen Vagrant als Lösung vor, da die Dateigröße beim Herunterladen Ihrer Gerätedatei möglicherweise ein Problem darstellt. Um ehrlich zu sein, wenn Sie eine minimalistische Umgebung installieren und beim Erstellen der virtuellen Festplatte Thin Provisioning verwenden, erhalten Sie möglicherweise eine Datei mit maximal 100 MB. Ich wollte das nur hinzufügen, da niemand anders darauf eingegangen ist.
Geruta
1
@gronostaj: Klingt irgendwie so, als ob diese arme VM in der Matrix hängen geblieben wäre! : O
Zaibis

Antworten:

24

Ich mag die Vagrant-zentrierte Antwort von mperrin , aber wie Sie aus den Kommentaren dort ersehen können, ist meine persönliche Meinung, „es einfach zu halten“, und ich würde einen einfachen Export einer VirtualBox-OVA empfehlen, wie Sie sie konfiguriert haben und an Ihre Schüler weitergeben .

Das heißt, Sie fragen dies:

Die Frage ist, wie dies funktioniert, wenn die Leute unterschiedliche Grafikhardware haben. Oder geht das? Und wenn ja, wie verteile ich es? Müssen sie VirtualBox installieren und dann eine Datei laden, die ich ihnen gebe, oder kann ich einfach ein einzelnes Installationsprogramm erstellen?

DevOps werden

Ich bin mir nicht sicher, was Sie unterrichten oder tun oder was Sie von Ihren Schülern erwarten, um aus dieser ganzen Übung herauszukommen, aber viele der Bedenken, die Sie äußern, kehren in den Bereich von DevOps (Entwicklung und Betrieb) zurück und möchten vielleicht zu erwägen, dieses Konzept in Ihre Lehren zu mischen.

Jetzt glaube ich nicht, dass das gesamte Konzept von DevOps vermittelt werden muss, aber in meinen Augen würde Ihre Schaffung einer stabilen VirtualBox-OVA, die Sie dann an die Schüler weitergeben und sie zur Verwendung auf ihren Heim- / Schulmaschinen auffordern, definitiv eine Tür öffnen Fragen, wie man mit verschiedenen Hardware- / System-Setups umgeht und wie man sie anpassen könnte.

Ich empfehle Ihnen daher dringend , den Schülern die Verwendung der von Ihnen eingerichteten VirtualBox OVA zu empfehlen. Sie können den Schülern jedoch auch die Möglichkeit geben, Tools einfach selbst zu installieren. Mein Bauch sagt mir, dass 95% - oder mehr - der Schüler die VirtualBox OVA-Methode gerne und problemlos verwenden würden, aber Sie können nicht erwarten, dass sie zu 100% perfekt ist.

Vielleicht sollten Sie am Ende nur einige grundlegende Anforderungen für die Verwendung der Kurstools haben und flexibel in deren Implementierung sein.

Seien Sie flexibel in Bezug auf die Verwendung von Werkzeugen

Zum Beispiel mache ich viel PHP-Entwicklung und mache Systemadministration / DevOps im Zusammenhang mit PHP-Entwicklung. Und da ich auf einem Mac bin, bevorzuge ich die lokale Entwicklung mit MAMP . Aber ich arbeite mit Entwicklern zusammen, die Linux oder Windows für ihre Entwicklung verwenden. Zum Teufel, manche nutzen Vagrant in Verbindung mit VirtualBox für ihre LAMP-Entwicklungsanforderungen. Und meine Einstellung ist mir egal, wie ihr Basis-Betriebssystem eingerichtet ist. Solange ihre PHP-Version mit den Versionen übereinstimmt, die meine Kunden verwenden, bin ich mit allem in Ordnung.

Gelegentlich gibt ein Entwickler an, dass ein Fehler verursacht wurde, weil beispielsweise Code, den ich auf MAMP getestet habe, "nicht der gleiche" ist wie bei einem Linux-LAMP-Setup. Und ich sage mit 100% iger Sicherheit, dass ich immer bewiesen habe, dass es nicht um das Basis-Betriebssystem, sondern um die PHP-Codierung selbst geht.

Das alles soll im Grunde Folgendes vermitteln: Erklären Sie den Schülern flexibel, wie ein VirtualBox-Setup verwendet wird, und rechnen Sie nicht damit, dass das Füttern eines Betriebssystems alle Probleme einfach beendet. Es könnte 95% Ihrer Probleme aus dem Park werfen, aber die verbleibenden 5% müssen immer auf irgendeine Weise angegangen werden. Betrachten Sie ein VirtualBox-Setup - und vielleicht ein Vagrant-Skript - als ein Tool, das in einem Arsenal verwendet werden kann, um einigen das Leben zu erleichtern, aber nicht unbedingt die endgültige Lösung für alle Probleme.

JakeGould
quelle
3
Unterrichten von C ++, Java, Datenstrukturen und dies ist ein Versuch, mich von Sysadmin / Devops zu lösen, was mich nicht interessiert!
Dov
1
@Dov Nun, wenn das der Fall ist, ist es am besten, eine VirtualBox-OVA zu exportieren und diese an die Leute in Ihrer Klasse zu verteilen.
JakeGould
18

Sie sollten einen Blick auf Vagrant werfen .

Vagrant unterstützt VirtualBox und ermöglicht Ihnen Folgendes:

Erstellen und Konfigurieren von kompakten, reproduzierbaren und portablen Entwicklungsumgebungen.

Es ist viel einfacher, einzelne oder mehrere Textdateien gemeinsam zu nutzen, als ein umfangreicher Export von VirtualBox-Bildern. Vor allem, wenn Sie Updates verwalten möchten.

Sobald VirtualBox und Vagrant installiert sind, haben Sie folgende Möglichkeiten:

vagrant up

Wille:

Eine einzelne Vagrant-Datei kann auch Besonderheiten von Windows- oder Mac-Hosts verarbeiten.

mperrin
quelle
7
Vagrant ist keine schlechte Idee. Wenn Sie lediglich eine VirtualBox-Appliance exportieren, die Schüler anweisen, VirtualBox zu installieren, und diese Appliance dann in VirtualBox importieren, ist dies in wenigen Schritten erledigt, ohne dass Vagrant buchstäblich eine Maschine von Grund auf neu erstellt oder das Risiko von Vagrant besteht Eigenheiten tauchen in der Mischung auf.
JakeGould
1
Sie haben Recht, Exporte sind mit Sicherheit der direkteste und einfachste Ansatz. Aber je nach den Bedürfnissen, dachte ich, Vagabund muss hier erwähnt werden. Das Verwalten von Uploads / Downloads großer Ova-Dateien kann problematisch sein, insbesondere wenn Updates auf Projektbasis durchgeführt werden müssen. Mehr Vergleich zu den beiden Ansätzen kann in dieser sehr guten Faden finden superuser.com/questions/584100/...
mperrin
Ziemlich gute Notizen zu diesem anderen Beitrag. Mein Gefühl ist folgendes: Wenn Sie der Meinung sind, dass Sie Vagrant für die Bereitstellung von mehr als 2 Servern per Scripting benötigen, entscheiden Sie sich dafür. Für die meisten Desktop-Benutzer und einfachen Entwickler funktioniert es jedoch genauso, wenn Sie Ihre eigenen Daten über VirtualBox rollen.
JakeGould
1
In Ihrem Fall besteht ein weiterer Vorteil von Vagrant gegenüber einem Export darin, dass Ihre Schüler lernen, wie das Image installiert und konfiguriert wird, indem sie das Bereitstellungsskript überprüfen. Viel einfacher als die Geschichte des Bildes durchzugehen.
Mperrin
8

Es spielt überhaupt keine Rolle - virtualbox (und jede andere Virtualisierungssoftware) emuliert einen eigenen Videoadapter (IIRC Cirrus Logic). Während die herkömmliche VirtualBox-Datei für Einstellungen und Speicherung in verschiedene Dateien aufgeteilt ist, können Sie sie wie vorgeschlagen in eine OVF-Datei exportieren. Wenn Ihre Schüler virtualbox oder vmware installieren können, sollte dies trivial sein. Wenn nicht, müssen sie lernen.

Die Installation von virtualbox ist ziemlich einfach (vorausgesetzt, Sie haben Hardware-Unterstützung).

Ich würde ein paar Vorschläge machen: Behalten Sie die 32-Bit-Version der VM bei (Sie müssen sich also keine Gedanken über die VT-X-Unterstützung auf dem Host machen) und erstellen Sie eine Anleitung für die Installation von virtualbox auf den beiden großen Betriebssystemen (Windows ist unkompliziert). Linux benötigt ein paar zusätzliche Schritte) und das Importieren der OVF-Datei. Dies bedeutet auch, dass die Schüler VMware Player oder ähnliches verwenden möchten, was sie können. Verwenden Sie NAT für das Netzwerk, es sei denn, Sie müssen einen Server ausführen, auf den von außen zugegriffen werden kann.

Wenn die Leistung kein Problem darstellt, können Sie wahrscheinlich alles in einer QEMU-Instanz (die eigenständig ausgeführt werden kann) und geeigneten Startskripten bündeln. Ich würde das als letzten Ausweg betrachten.

Ich möchte darauf hinweisen, dass viele Universitäten tatsächlich eine VM mit geeigneten Tools ausstatten ( IIRC Stanfords CS 50 ist ein frei verfügbarer Kurs von edx), sodass es sich lohnen könnte, sich anzusehen, wie sie dies tun.

Geselle Geek
quelle
3

Als Alternative zu den meisten Virtualisierungstechnologien kann Linux (z. B. Ubuntu) auf einem Thumbdrive installiert werden. Nahezu jeder Computer bootet mit einem USB-Stick, und die meisten modernen Installationsprogramme erkennen Grafikkarten / Netzwerkkarten beim Booten. Wenn Sie ein 32-Bit-Ubuntu installieren, läuft es auf fast der gesamten Hardware, die die Leute wahrscheinlich zu Hause haben.

Sie sind einfach zu verteilen und erfordern keine zusätzliche installierte Software. Sie können auch problemlos von Maschine zu Maschine transportiert werden - ziehen Sie den Netzstecker aus der Steckdose und stecken Sie ihn in die Tasche. Wenn Sie nach Hause kommen, schließen Sie es einfach an.

Sie sind relativ billig zu haben (mir ist klar, dass das Schulbudget sehr begrenzt ist!); Je nachdem, welche Anwendung auf dem Computer ausgeführt werden soll, sollten 4 GB, möglicherweise 8 GB, ausreichen.

AMADANON Inc.
quelle
Jeder in der Grundschule hat einen Laptop. Ich glaube nicht, dass ein USB erforderlich ist.
Dov
1

Eine weitere Option zu prüfen. Wenn Sie nicht wirklich besorgt sind, dass sie eine GUI haben, können Sie etwas wie terminal.com verwenden .

Sie können Ihren eigenen öffentlichen Schnappschuss erstellen und diesen einfach für Ihre Schüler verfügbar halten. Es ähnelt dem VirtualBox-Ansatz, aber anstatt die VMs auf ihrem eigenen Computer zu installieren, befindet es sich auf dem Computer eines anderen Cloud -Benutzers.

Dann brauchen sie nur noch einen ausreichend modernen Webbrowser. Und wenn sie interessiert sind, können sie es so einrichten, dass sie SSH / Putty / etc verwenden können.

Wenn die Schüler die Mikroinstanz (256 MB RAM, ein paar GB Speicherplatz) verwenden und die VM pausieren, wenn sie sie nicht verwenden, würde dies sie 9 US-Dollar pro Jahr kosten. Tag. Ich kann nicht für terminal.com sprechen, aber ich vermute, wenn Sie mit ihnen Kontakt aufnehmen, können sie Ihnen möglicherweise eine Art Bildungsrabatt gewähren.

Wayne Werner
quelle
Ein ähnlicher Dienst ist der kostenlose Zugang zur öffentlichen Shell von [SDF.org] (sdf.org/?join) für Pädagogen. FAQ lehren . Keine VM, aber trotzdem gut.
HSchmale