Vuoi distribuire la macchina virtuale Linux su cui gli studenti possano lavorare


25

Ho studenti con Mac e Windows. Ogni semestre, ci sono sempre molte domande su come installare lo strumento "X". Vorrei creare una singola macchina virtuale Linux (ho provato VirtualBox) e distribuire l'immagine. In questo modo, tutti gli strumenti sono preinstallati e tutti usano Linux.

La domanda è, dato che le persone hanno hardware grafico diverso, come funziona? O funziona? E se lo fa, come lo distribuisco? Devono installare VirtualBox, quindi caricare alcuni file che gli do o posso creare facilmente un singolo programma di installazione?


13
Virtualbox permettono di esportare un Appliance . Tale file può essere importato in qualsiasi software di virtualizzazione (VMWare, Virtualbox ecc.) E si configura nell'hardware locale. Questo sembra essere quello che stai chiedendo. Un singolo programma di installazione non è possibile perché non è possibile eseguire lo stesso programma su Windows (.exe) e Mac (.app).
GiantTree,

Devo installarlo di nuovo in modo diverso o posso salvare la mia macchina virtuale come dispositivo?
Dov

È possibile salvare qualsiasi macchina virtuale come Appliance in Virtualbox. Basta fare: File -> Esporta appliance Ctrl + E
GiantTree

Alcuni suggeriscono Vagrant come soluzione poiché la dimensione del file potrebbe essere un problema durante i download del file dell'appliance. A dire il vero, se installi un ambiente minimalista e usi il thin provisioning durante la creazione dell'HD virtuale, potresti finire con un file di 100 MB o meno molto fattibile. Volevo solo aggiungerlo perché non è stato affrontato da nessun altro.
Geruta,

1
@gronostaj: Sembra un po 'come se questa povera VM fosse stata catturata nella matrice! : O
Zaibis,

Risposte:


24

Mi piace la risposta incentrata su Vagrant di mperrin , ma come puoi vedere dai commenti lì, la mia opinione personale è di "mantenerlo semplice" e raccomanderei una semplice esportazione di un VirtualBox OVA come hai configurato e passandolo ai tuoi studenti .

Detto questo, chiedi questo:

La domanda è, dato che le persone hanno hardware grafico diverso, come funziona? O funziona? E se lo fa, come lo distribuisco? Devono installare VirtualBox, quindi caricare alcuni file che gli do o posso creare facilmente un singolo programma di installazione?

Virare in DevOps

Non sono troppo sicuro di ciò che stai insegnando o facendo o di cosa ti aspetti che i tuoi studenti escano da questo intero esercizio, ma molte delle preoccupazioni che stai trasmettendo vanno nel regno di DevOps (sviluppo e operazioni) e che potresti desiderare considerare di mescolare questo concetto nei tuoi insegnamenti.

Ora non credo che l'intero concetto di DevOps debba essere trasmesso, ma nella mia mente la tua creazione di un VirtualBox OVA stabile che poi passi agli studenti e chiedi loro di usare sulle loro macchine a casa / scuola aprirebbe sicuramente una porta a domande su come gestire le diverse configurazioni hardware / di sistema e su come adattarsi.

Quindi la mia raccomandazione per te è di raccomandare fortemente agli studenti di utilizzare VirtualBox OVA che avresti impostato, ma anche di essere aperto a consentire agli studenti di installare semplicemente gli strumenti da soli. Il mio istinto mi dice che il 95%, o più, degli studenti userebbe felicemente e facilmente il metodo VirtualBox OVA, ma non puoi aspettarti che sia perfetto al 100%.

Forse alla fine dovresti avere solo una base di requisiti per l'utilizzo degli strumenti del corso ed essere flessibile nella loro implementazione.

Sii flessibile riguardo al modo in cui vengono utilizzati gli strumenti

Ad esempio, faccio molto sviluppo PHP e gestisco sistemi / DevOps relativi allo sviluppo PHP. E poiché sono su un Mac, preferisco usare MAMP per lo sviluppo locale. Ma lavoro con sviluppatori che usano Linux o Windows per il loro sviluppo. Diamine, ad alcuni piace usare Vagrant insieme a VirtualBox per le loro esigenze di sviluppo LAMP. E il mio atteggiamento è che non mi interessa quale sia la loro configurazione del sistema operativo di base. Finché la loro versione di PHP è in linea con le versioni utilizzate dai miei clienti, sto bene con qualunque cosa.

Occasionalmente uno sviluppatore dichiarerà che è stato causato un errore perché, ad esempio, il codice che ho testato su MAMP non è "lo stesso" di quello che sarebbe su una configurazione LAMP di Linux. E dico con sicurezza al 100%, che ho sempre dimostrato che il problema non è il sistema operativo di base, ma piuttosto il codice PHP stesso.

Quindi tutto questo blather è fondamentalmente per comunicare quanto segue: Sii flessibile nella tua spiegazione sull'uso di una configurazione di VirtualBox agli studenti e non aspettarti che alimentare un sistema operativo semplicemente risolva tutti i problemi. Potrebbe buttare fuori dal parco il 95% dei tuoi problemi, ma quel restante 5% dovrà sempre essere affrontato in qualche modo. Quindi guarda un'impostazione di VirtualBox - e forse uno script Vagrant - come uno strumento che può essere usato in un arsenale per rendere la vita più facile ad alcuni, ma non necessariamente la soluzione definitiva per tutti i problemi.


3
insegnare C ++, java, Strutture dati, e questo è un tentativo di scappare da sysadmin / devops che non mi interessa!
Dov

1
@Dov Bene, in tal caso, esportare un VirtualBox OVA e distribuirlo a persone della tua classe è il modo migliore di procedere.
Jake:

18

Dovresti dare un'occhiata a Vagrant .

Vagrant supporta VirtualBox e ti consente di:

Crea e configura ambienti di sviluppo leggeri, riproducibili e portatili.

Sarà molto più semplice condividere un singolo o un mucchio di file di testo rispetto a una grande esportazione dell'immagine di VirtualBox. Soprattutto se si desidera gestire gli aggiornamenti.

Una volta installati VirtualBox e Vagrant un semplice:

vagrant up

Volontà:

Un singolo Vagrantfile può anche gestire le specificità degli host Windows o Mac.


7
Mentre Vagrant non è una cattiva idea, semplicemente esportando un'appliance VirtualBox, istruendo gli studenti a installare VirtualBox e poi importandoli in VirtualBox esegue il lavoro in pochi passaggi senza che Vagrant ricostruisca letteralmente una macchina da zero o abbia il rischio di Vagrant idiosincrasie spuntano nel mix.
Jake Gould il

1
Hai ragione, le esportazioni sono sicuramente l'approccio più diretto e più semplice. Ma a seconda delle esigenze, ho pensato che il vagabondo debba essere menzionato qui. La gestione di upload / download di file Ova di grandi dimensioni può essere problematica, soprattutto se gli aggiornamenti devono essere eseguiti in base al progetto. Ulteriori paragoni sui due approcci possono essere trovati in questo ottimo thread superuser.com/questions/584100/…
mperrin,

Abbastanza buone note su quell'altro post. La mia sensazione è questa: se ritieni di aver bisogno di Vagrant per distribuire più di 2 server tramite script, provalo. Ma per la maggior parte degli utenti desktop e semplici sviluppatori, anche solo il "rotolare il tuo" tramite VirtualBox funziona altrettanto.
Jake:

1
Nel tuo caso, un altro vantaggio di Vagrant rispetto a un'esportazione è la possibilità per i tuoi studenti di apprendere il "come" installare e configurare l'immagine controllando lo script di provisioning. Molto più facile che passare attraverso la storia dell'immagine.
mperrin,

8

Non importa affatto - virtualbox (e ben ogni altro software di virtualizzazione) emula la propria scheda video (logica cirrus IIRC). Mentre il file virtualbox tradizionale è suddiviso in diversi file per impostazioni e archiviazione, è possibile esportarlo in un file ovf come suggerito. Se i tuoi studenti possono installare virtualbox o vmware, dovrebbe essere banale. In caso contrario, devono imparare.

L'installazione di virtualbox è abbastanza banale (supponendo che tu abbia il supporto hardware).

Ci sono alcune cose che suggerirei: mantieni la VM a 32 bit (quindi non devi preoccuparti del supporto VT-X sull'host), creando un howto per l'installazione di virtualbox sui 2 grandi SO (Windows è semplice, Linux richiede alcuni passaggi aggiuntivi) e l'importazione del file OVF. Questo significa anche se gli studenti vogliono usare vmware player o simili. Utilizzare NAT per la rete a meno che non sia necessario eseguire un server accessibile dall'esterno.

Se le prestazioni non sono un problema, probabilmente potresti semplicemente raggruppare tutto in un'istanza QEMU (possono essere configurati per eseguire autonomi) e script di avvio adatti. Lo considero un'ultima risorsa.

Vorrei notare che molte università in realtà forniscono a una VM strumenti adeguati ( IIRC stanfords CS 50 lo possiede, ed è un corso disponibile gratuitamente da edx), quindi potrebbe valere la pena di vedere come lo fanno.


3

In alternativa alla maggior parte della tecnologia di virtualizzazione, Linux (ad esempio Ubuntu) può essere installato su una chiavetta USB. Praticamente ogni computer si avvia da una chiavetta USB e la maggior parte dei programmi di installazione moderni rileverà le schede grafiche / le schede di rete al momento dell'avvio. Se installi un Ubuntu a 32 bit, verrà eseguito su quasi tutto l'hardware che le persone avranno probabilmente a casa.

Sono facili da distribuire e non richiedono NESSUN software aggiuntivo installato. Possono anche essere facilmente spostati da una macchina all'altra: scollegare il computer della scuola, metterlo in tasca. Quando arrivi a casa, basta collegarlo.

Si possono avere abbastanza a buon mercato (mi rendo conto che i budget scolastici sono molto limitati!); a seconda dell'applicazione che verrebbe eseguita sulla macchina, 4 GB dovrebbero essere sufficienti, forse 8 GB.


Tutti alla scuola elementare hanno un laptop. Non penso che sia necessario un usb.
Dov

1

Un'altra opzione da considerare. Se non sei davvero preoccupato che abbiano una GUI, potresti usare qualcosa come terminal.com .

Puoi creare la tua istantanea pubblica e semplicemente tenerla a disposizione dei tuoi studenti. È simile all'approccio VirtualBox, ma anziché installare le macchine virtuali sul proprio computer è sul cloud il computer di qualcun altro.

Quindi tutto ciò di cui hanno bisogno è un browser Web sufficientemente moderno. E se sono interessati, possono configurarlo in modo che possano usare SSH / Putty / ecc.

Secondo le loro cifre, se gli studenti utilizzano la microistanza (256 MB di RAM, un paio di GB di spazio su disco), se mettono in pausa la VM quando non la usano, costerebbe loro $ 9 / anno eseguendola per 8 ore / giorno. Non posso parlare per terminal.com, ma sospetto che se li hai contattati potrebbero essere in grado di fornirti una sorta di sconto educativo.


Un servizio simile è l'accesso gratuito alla shell pubblica di [SDF.org] (sdf.org/?join) per gli educatori. Insegna FAQ . Non è una VM, ma è comunque buona.
HSchmale
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.