Хочете розповсюдити віртуальну машину Linux для студентів, над якими працюють


25

У мене є студенти під керуванням Mac та Windows. Кожен семестр завжди виникає багато питань, як встановити інструмент "X". Я хотів би створити єдину віртуальну машину Linux (я спробував VirtualBox) і розподілити зображення. Таким чином, усі інструменти попередньо встановлені, і всі використовують Linux.

Питання в тому, якщо люди мають різну графічну техніку, як це працює? Або це працює? І якщо так, то як я його поширюю? Чи потрібно їм встановлювати VirtualBox, а потім завантажувати якийсь файл, який я їм даю, чи я можу легко створити одного інсталятора?


13
Virtualbox дозволяють експортувати Appliance . Цей файл можна імпортувати у будь-яке програмне забезпечення для віртуалізації (VMWare, Virtualbox тощо) і налаштовується на місцеве обладнання. Це, здається, те, про що ви просите. Один інсталятор неможливий, тому що ви не можете запустити ту саму програму на WIndows (.exe) та Mac (.app).
GiantTree

Чи потрібно знову встановлювати інше, чи можу я зберегти свою віртуальну машину як пристрій?
Дов

Ви можете зберегти будь-яку віртуальну машину як пристрій у Virtualbox. Просто зробіть: Файл -> Експорт Appliance Ctrl + E
GiantTree

Деякі пропонують Vagrant як рішення, оскільки розмір файлу може бути проблемою під час завантаження файлу вашого пристрою. Правду кажучи, якщо ви встановите мінімалістичне середовище і використовуєте тонкі резервування під час створення віртуального HD, ви можете отримати дуже спроможний файл розміром 100 Мб або менше. Просто хотів додати, що там, оскільки ніхто з них не звертався.
Герута

1
@gronostaj: Звучить якось, як цей бідний ВМ потрапив у матрицю! : O
Zaibis

Відповіді:


24

Мені подобається відповідь , орієнтована на імперію, і , як ви можете побачити з коментарів, моя особиста думка полягає в тому, щоб "зробити це просто", і я рекомендував би простий експорт VirtualBox OVA, як ви це налаштували, і передавши його своїм студентам. .

Це означає, що ви запитуєте це:

Питання в тому, якщо люди мають різну графічну техніку, як це працює? Або це працює? І якщо так, то як я його поширюю? Чи потрібно їм встановлювати VirtualBox, а потім завантажувати якийсь файл, який я їм даю, чи я можу легко створити одного інсталятора?

Повторюючись у DevOps

Я не надто впевнений, що ви вчите чи робите, або що ви очікуєте, що ваші студенти вийдуть з усієї цієї вправи, але багато питань, які ви проглядаєте, переглядаєте сферу DevOps (розробка та операції), і ви можете захотіти розглянути можливість змішання цього поняття з вашими вченнями.

Зараз я не думаю, що всю концепцію DevOps потрібно передавати, але на мій погляд, твоє створення стабільної VirtualBox OVA, яку ти потім передаєш студентам і просиш їх використовувати на своїх домашніх / шкільних машинах, безумовно, відкриє двері до запитання про те, як слід мати справу з різними налаштуваннями обладнання та системи та як можна адаптуватись.

Тож моя рекомендація для вас настійно рекомендую студентам використовувати VirtualBox OVA, яку ви встановили, але також будете відкриті для того, щоб дозволити студентам просто встановлювати інструменти самостійно. Моя кишка говорить мені, що 95% - або більше - з учнів із задоволенням та легкістю використовуватимуть метод OVA VirtualBox, але ви не можете очікувати, що він на 100% ідеальний.

Можливо, врешті-решт, ви повинні просто мати певні базові вимоги до використання інструментів курсу та бути гнучкими у їх виконанні.

Будьте гнучкими щодо використання інструментів

Наприклад, я роблю багато розробок PHP та займаюся адмініструванням систем / DevOps, пов'язаними з розробкою PHP. А оскільки я на Mac, я вважаю за краще використовувати MAMP для місцевого розвитку. Але я працюю з розробниками, які використовують Linux або Windows для своєї розробки. Чорт, який любить використовувати Vagrant у поєднанні з VirtualBox для своїх потреб у розробці LAMP. І моє ставлення полягає в тому, що мені байдуже, яка їх основна установка ОС. Поки їх PHP-версія співпадає з версіями, якими користуються мої клієнти, я все добре.

Іноді розробник повідомляє про помилку, тому що, наприклад, код, який я перевірив на MAMP, "не той самий", як у налаштуваннях LAMP для Linux. І я з 100% впевненістю кажу, що я завжди доводив, що проблема полягає не в базовій ОС, а в самому кодуванні PHP.

Отже, вся ця криза полягає в тому, щоб передати наступне: Просто будьте гнучкими у своєму поясненні використання програми VirtualBox для студентів і не сподівайтесь, що годування ОС ложкою просто припинить усі проблеми. Це може вибити 95% ваших проблем із парку, але ті, що залишилися 5%, завжди доведеться вирішувати якимось чином. Тож погляньте на налаштування VirtualBox - а можливо, і на сценарій Vagrant - як на інструмент, який можна використовувати в арсеналі, щоб полегшити життя деяким, але не обов’язково для вирішення всіх питань.


3
викладання C ++, java, структур даних, і це спроба відійти від sysadmin / devops, що мене не цікавить!
Dov

1
@Dov Ну, якщо це так, експорт VirtualBox OVA та розповсюдження його людям у вашому класі - це найкращий шлях.
JakeGould

18

Ви повинні поглянути на Вагранта .

Vagrant підтримує VirtualBox і дозволяє:

Створення та налаштування легких, відтворюваних та портативних середовищ розробки.

Буде набагато простіше поділитися одним або купою текстових файлів, ніж великий експорт зображення VirtualBox. Особливо, якщо ви хочете керувати оновленнями.

Після встановлення VirtualBox і Vagrant просте:

vagrant up

Буде:

Один Vagrantfile також може обробляти особливості хостів Windows або Mac.


7
Хоча Vagrant не є поганою ідеєю, просто експортувати прилад VirtualBox, доручити студентам встановити VirtualBox, а потім змусити їх імпортувати цей пристрій у VirtualBox, виконує завдання за кілька кроків, без того, щоб Vagrant буквально переробляв машину з нуля або не мав ризику Vagrant ідіосинкразії спливають у суміш.
JakeGould

1
Ви маєте рацію, експорт, безумовно, є найбільш прямим і найпростішим підходом. Але залежно від потреб я думав, що тут треба згадати бродячого. Управління завантаженнями та завантаженнями великих файлів яєць може бути проблематичним, особливо якщо оновлення потрібно робити на основі проекту. Більше порівняння щодо двох підходів можна знайти в цій дуже гарній темі superuser.com/questions/584100/…
mperrin

Досить хороші нотатки про цю іншу посаду. Моє відчуття таке: якщо вам здається, що вам потрібен Vagrant для розгортання більш ніж 2 серверів за допомогою сценаріїв, перейдіть до цього. Але для більшості користувачів настільних ПК та простих розробників, просто "прокатка власного" через VirtualBox працює так само добре.
JakeGould

1
У вашому випадку ще однією перевагою бродячого над експортом є можливість ваших учнів дізнатися "як" встановити та налаштувати зображення, перевіривши сценарій забезпечення. Набагато простіше, ніж пройти історію зображення.
mperrin

8

Це би не мало значення - virtualbox (та й будь-яке інше програмне забезпечення для віртуалізації) емулює власний відеоадаптер (логіка IIRC cirrus). Хоча традиційний файл віртуальної скриньки розділений на різні файли для налаштувань та зберігання, ви можете експортувати його у файл ovf, як пропонується. Якщо ваші студенти можуть встановити virtualbox або vmware, це має бути тривіально. Якщо ні, то їм потрібно вчитися.

Установка virtualbox досить тривіальна (якщо припустити, що у вас апаратна підтримка).

Я б запропонував кілька речей - тримати VM до 32 біт (тому вам не потрібно турбуватися про підтримку VT-X на хості), створюючи як для встановлення virtualbox на великих 2-х ОС (Windows простий, Linux потребує декількох додаткових кроків) та імпортування файлу OVF. Це також означає, що студенти хочуть використовувати програвач vmware або подібне, що можуть. Використовуйте NAT для створення мереж, якщо вам не потрібно запускати сервер, доступний зовні.

Якщо продуктивність не є проблемою, ви, ймовірно, можете просто зв'язати все до екземпляра QEMU (вони можуть бути налаштовані для запуску самостійно) та відповідних сценаріїв запуску. Я вважаю це крайнім заходом.

Я зауважу, що багато університетів насправді постачають ВМ підходящими інструментами ( IIRC standfords CS 50 d oes це, і це безкоштовно доступний курс від edx), тому, можливо, варто поглянути на те, як вони це роблять.


3

Як альтернатива більшості технологій віртуалізації, Linux (наприклад, Ubuntu) може бути встановлений на thumbdrive. Практично кожен комп'ютер завантажиться із головного диска, і більшість сучасних установців виявляють відеокарти / мережеві карти під час завантаження. Якщо встановити 32-розрядний Ubuntu, він буде працювати майже на всьому апаратному забезпеченні, який люди, можливо, матимуть вдома.

Їх легко роздавати, і не потрібно жодного додаткового встановленого програмного забезпечення. Їх також можна легко перенести з машини на машину - від'єднайте штепсельну вилку від шкільного комп’ютера, покладіть у кишеню. Коли ви повернетесь додому, просто підключіть його.

Вони можуть бути досить дешевими (я розумію, що шкільні бюджети дуже обмежені!); залежно від того, який додаток буде запущено на машині, 4gb повинно вистачити, можливо, 8gb.


У всіх учнів школи є ноутбук. Я не думаю, що в цьому немає потреби в usb.
Dov

1

Ще один варіант, який слід розглянути. Якщо ви не дуже переживаєте за те, щоб вони мали графічний інтерфейс, ви можете використовувати щось на зразок terminal.com .

Ви можете створити власний загальнодоступний знімок і просто зберегти доступне для своїх учнів. Це схоже на підхід VirtualBox, але замість того, щоб встановлювати VM на власній машині, це на хмарі чужа машина.

Тоді все, що їм потрібно, - це досить сучасний веб-браузер. І якщо вони зацікавлені, вони можуть налаштувати його, щоб вони могли використовувати SSH / Putty / тощо.

Згідно з їхніми даними, якщо студенти використовують мікропримірник (256 Мб оперативної пам’яті, пара дискового простору в ГБ), якщо вони призупиняють VM, коли вони не використовують його, це коштуватиме їм 9 доларів / рік, запустивши його на 8 год / день. Я не можу говорити за terminal.com, але підозрюю, що якщо ви зв’язалися з ними, вони можуть надати вам певну знижку на навчання.


Аналогічна послуга - безкоштовний доступ громадських оболонок для освітян [SDF.org] (sdf.org/?join). Навчити FAQ . Не VM, але все одно добре.
HSchmale
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.