Chcesz dystrybuować maszynę wirtualną z systemem Linux dla studentów do pracy

25

Mam studentów z komputerami Mac i Windows. W każdym semestrze zawsze pojawia się wiele pytań na temat instalacji narzędzia „X”. Chciałbym utworzyć pojedynczą maszynę wirtualną z systemem Linux (próbowałem VirtualBox) i rozpowszechnić obraz. W ten sposób wszystkie narzędzia są wstępnie zainstalowane i wszyscy korzystają z Linuksa.

Pytanie, skoro ludzie mają inny sprzęt graficzny, jak to działa? Czy to działa? A jeśli tak, to jak to rozpowszechniać? Czy muszą zainstalować VirtualBox, a następnie załadować jakiś plik, który im podaruję, czy też mogę łatwo utworzyć jednego instalatora?

Dow
źródło
13
Virtualbox pozwala wyeksportować urządzenie . Plik ten można zaimportować w dowolnym oprogramowaniu do wirtualizacji (VMWare, Virtualbox itp.) I skonfigurować go na lokalnym sprzęcie. Wydaje się, że o to prosisz. Pojedynczy instalator nie jest możliwy, ponieważ nie można uruchomić tego samego programu na systemach Windows (.exe) i Mac (.app).
GiantTree,
Czy muszę ponownie zainstalować w inny sposób, czy mogę zapisać moją maszynę wirtualną jako urządzenie?
Dow
Możesz zapisać dowolną maszynę wirtualną jako urządzenie w Virtualbox. Po prostu zrób: Plik -> Eksportuj urządzenie Ctrl + E
GiantTree
Niektórzy sugerują Vagrant jako rozwiązanie, ponieważ rozmiar pliku może być problemem podczas pobierania pliku urządzenia. Prawda jest taka, że ​​jeśli zainstalujesz minimalistyczne środowisko i podczas tworzenia wirtualnego HD będziesz korzystać z cienkiej obsługi administracyjnej, możesz uzyskać bardzo wydajny plik o wielkości 100 MB lub mniejszej. Chciałem tylko dodać to tam, ponieważ nikt inny się tym nie zajął.
Geruta
1
@gronostaj: Wygląda na to, że ta biedna VM została złapana w matrycę! : O
Zaibis,

Odpowiedzi:

24

Lubię Vagrant-centryczną odpowiedź mperrina , ale jak widać z tamtejszych komentarzy, moim osobistym zdaniem jest „ upraszczanie” i zalecałbym prosty eksport VirtualBox OVA po skonfigurowaniu i przekazaniu go swoim studentom .

Powiedziawszy to, pytasz:

Pytanie, skoro ludzie mają inny sprzęt graficzny, jak to działa? Czy to działa? A jeśli tak, to jak to rozpowszechniać? Czy muszą zainstalować VirtualBox, a następnie załadować jakiś plik, który im podaruję, czy też mogę łatwo utworzyć jednego instalatora?

Skręcając w DevOps

Nie jestem zbyt pewien tego, czego uczysz lub robisz, lub czego oczekujesz, że uczniowie odejdą z tego całego ćwiczenia, ale wiele obaw, które wysyłasz, przenosi się w sferę DevOps (rozwój i operacje) i możesz chcieć rozważenie włączenia tej koncepcji w swoje nauki.

Teraz nie sądzę, że należy przekazać całą koncepcję DevOps, ale moim zdaniem stworzenie stabilnego VirtualBox OVA, które następnie przekazujesz uczniom i prosisz ich o użycie na ich komputerach domowych / szkolnych, zdecydowanie otworzy drzwi do pytania dotyczące sposobu radzenia sobie z różnymi ustawieniami sprzętowymi / systemowymi i sposobów dostosowania.

Więc moim zaleceniem dla ciebie jest stanowcze zalecenie, aby uczniowie korzystali z VirtualBox OVA, który skonfigurowałbyś, ale także być otwartym na zezwalanie uczniom na samodzielne instalowanie narzędzi. Mój żołądek mówi mi, że 95% - lub więcej - uczniów chętnie i łatwo skorzystałoby z metody VirtualBox OVA, ale nie można oczekiwać, że będzie ona w 100% doskonała.

Być może w końcu powinieneś mieć jakieś podstawowe wymagania dotyczące użycia narzędzi kursu i być elastycznym w ich implementacji.

Bądź elastyczny, jeśli chodzi o sposób używania narzędzi

Na przykład robię dużo programowania PHP i administruję systemami / DevOps związanymi z programowaniem PHP. A ponieważ jestem na komputerze Mac, wolę używać MAMP do rozwoju lokalnego. Ale współpracuję z programistami, którzy używają Linuksa lub Windowsa do rozwoju. Heck, niektórzy lubią używać Vagrant w połączeniu z VirtualBox do swoich potrzeb rozwojowych LAMP. I moim podejściem nie obchodzi mnie, jaka jest ich podstawowa konfiguracja systemu operacyjnego. Tak długo, jak ich wersja PHP jest zgodna z wersjami używanymi przez moich klientów, nic mi nie jest.

Czasami programiści stwierdzą, że wystąpił błąd, ponieważ - na przykład - kod, który testowałem na MAMP, nie jest „taki sam”, jak w przypadku instalacji Linux LAMP. I mówię ze 100% pewnością, że zawsze udowodniłem, że problemem nie jest podstawowy system operacyjny, ale samo kodowanie PHP.

Tak więc cały ten blather ma w gruncie rzeczy przekazać: Po prostu bądź elastyczny w wyjaśnieniu korzystania z konfiguracji VirtualBox dla uczniów i nie oczekuj, że karmienie łyżką systemu operacyjnego po prostu zakończy wszystkie problemy. Może to spowodować usunięcie 95% twoich problemów z parku, ale pozostałe 5% zawsze będzie wymagało rozwiązania. Spójrz więc na konfigurację VirtualBox - i być może skrypt Vagrant - jako narzędzie, które można wykorzystać w arsenale, aby ułatwić życie niektórym, ale niekoniecznie ostatecznym rozwiązaniem wszystkich problemów.

JakeGould
źródło
3
uczę C ++, java, struktur danych, a ta próba ucieczki od sysadmin / devops mnie nie interesuje!
Dow
1
@Dov Cóż, jeśli tak jest, najlepszym rozwiązaniem jest eksportowanie OVA VirtualBox i rozpowszechnianie go wśród ludzi w klasie.
JakeGould,
18

Powinieneś rzucić okiem na Vagrant .

Vagrant obsługuje VirtualBox i pozwala na:

Twórz i konfiguruj lekkie, odtwarzalne i przenośne środowiska programistyczne.

O wiele łatwiej będzie udostępnić jeden lub kilka plików tekstowych niż duży eksport obrazu VirtualBox. Zwłaszcza jeśli chcesz zarządzać aktualizacjami.

Po zainstalowaniu VirtualBox i Vagrant jest prosty:

vagrant up

Wola:

Pojedynczy plik Vagrantfile może również obsługiwać specyfikę hostów Windows lub Mac.

mperryna
źródło
7
Podczas gdy Vagrant nie jest złym pomysłem, po prostu eksportowanie urządzenia VirtualBox, instruowanie studentów, aby zainstalowali VirtualBox, a następnie zmuszenie ich do importowania tego urządzenia do VirtualBox, wykonuje zadanie w kilku krokach bez Vagrant dosłownie odbudowujący maszynę od zera lub ryzykujący Vagrant dziwactwa pojawiające się w miksie.
JakeGould,
1
Masz rację, eksport jest z pewnością najprostszym i najprostszym podejściem. Ale w zależności od potrzeb, myślałem, że włóczęga musi być tutaj wymieniona. Zarządzanie przesyłaniem / pobieraniem dużych plików komórek jajowych może być problematyczne, szczególnie jeśli aktualizacje muszą być wykonywane dla poszczególnych projektów. Więcej porównania tych dwóch podejść można znaleźć w tym bardzo dobrym wątku superuser.com/questions/584100/…
mperrin
Całkiem dobre notatki na temat tego drugiego postu. Mam wrażenie, że: jeśli uważasz, że potrzebujesz Vagrant do wdrożenia więcej niż 2 serwerów za pomocą skryptów, idź do niego. Ale dla większości użytkowników komputerów stacjonarnych i zwykłych programistów samo „kręcenie” za pomocą VirtualBox działa równie dobrze.
JakeGould,
1
W twoim przypadku kolejną przewagą włóczęgi nad eksportem jest to, że uczniowie mogą nauczyć się, jak instalować i konfigurować obraz, sprawdzając skrypt obsługi administracyjnej. Znacznie łatwiejsze niż przeglądanie historii obrazu.
mperrin
8

Nie miałoby to żadnego znaczenia - virtualbox (i cóż, każde inne oprogramowanie do wirtualizacji) emuluje własną kartę wideo (logika cirrus IIRC). Podczas gdy tradycyjny plik Virtualbox jest podzielony na różne pliki dla ustawień i przechowywania, możesz go wyeksportować do pliku ovf, zgodnie z sugestią. Jeśli twoi uczniowie mogą zainstalować virtualbox lub vmware, powinno to być trywialne. Jeśli nie, muszą się uczyć.

Instalacja virtualbox jest dość prosta (zakładając, że masz wsparcie sprzętowe).

Jest kilka rzeczy, które zasugerowałem - utrzymaj maszynę wirtualną w wersji 32-bitowej (abyś nie musiał martwić się obsługą VT-X na hoście), tworząc howto na temat instalacji virtualbox na dużych 2 systemach operacyjnych (Windows jest prosty, linux wymaga kilku dodatkowych kroków) i importowania pliku OVF. Oznacza to również, że jeśli studenci chcą korzystać z odtwarzacza vmware lub podobnego, mogą. Użyj NAT do pracy w sieci, chyba że musisz uruchomić serwer dostępny z zewnątrz.

Jeśli wydajność nie stanowi problemu, prawdopodobnie możesz po prostu wszystko spakować w instancję QEMU (można je skonfigurować tak, aby działały samodzielnie) i odpowiednie skrypty startowe. Pomyślę to na ostatni ośrodek.

Zauważyłem, że wiele uniwersytetów faktycznie dostarcza maszynę wirtualną z odpowiednimi narzędziami ( stany IIRC CS 50 robią to i jest to darmowy kurs edx), więc może warto zastanowić się, jak to robią.

Journeyman Geek
źródło
3

Jako alternatywa dla większości technologii wirtualizacji, Linux (np. Ubuntu) można zainstalować na pendrivie. Prawie każdy komputer uruchamia się z pendrive'a, a większość współczesnych instalatorów wykrywa karty graficzne / karty sieciowe podczas uruchamiania. Jeśli zainstalujesz 32-bitowe Ubuntu, będzie ono działać na prawie całym sprzęcie, jaki ludzie mogą mieć w domu.

Są łatwe do rozdania i nie wymagają ŻADNEGO dodatkowego zainstalowanego oprogramowania. Można je również łatwo przenosić z maszyny na maszynę - odłącz od szkolnego komputera, włóż do kieszeni. Po powrocie do domu po prostu podłącz go.

Można je mieć dość tanio (zdaję sobie sprawę, że budżety szkolne są bardzo ograniczone!); w zależności od tego, jaka aplikacja zostanie uruchomiona na komputerze, powinno wystarczyć 4 GB, być może 8 GB.

AMADANON Inc.
źródło
Wszyscy w szkole mają laptopa. Nie sądzę, że istnieje potrzeba USB.
Dow
1

Inna opcja do rozważenia. Jeśli tak naprawdę nie martwisz się, że mają GUI, możesz użyć czegoś takiego jak terminal.com .

Możesz stworzyć własną publiczną migawkę i po prostu zachować ją dla swoich uczniów. Jest podobny do podejścia VirtualBox, ale zamiast instalować maszyny wirtualne na własnej maszynie, jest w chmurze czyjejś maszyny.

Zatem wszystko, czego potrzebują, to wystarczająco nowoczesna przeglądarka internetowa. A jeśli są zainteresowani, mogą to skonfigurować, aby mogli używać SSH / Putty / etc.

Według ich danych, jeśli uczniowie używają mikro instancji (256 MB pamięci RAM, kilka GB miejsca na dysku), jeśli zatrzymają maszynę wirtualną, gdy jej nie używają, kosztowanie ich wyniesie 9 USD rocznie przez 8 godzin / dzień. Nie mogę wypowiadać się w imieniu terminal.com, ale podejrzewam, że jeśli się z nimi skontaktujesz, mogą zapewnić ci zniżkę edukacyjną.

Wayne Werner
źródło
Podobną usługą jest bezpłatny dostęp publiczny shell [SDF.org] (sdf.org/?join) dla nauczycieli. Naucz FAQ . Nie jest maszyną wirtualną, ale nadal jest dobra.
HSchmale,