Хотите распространять виртуальную машину Linux для студентов, чтобы работать на

25

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

Вопрос в том, как люди работают с разным графическим оборудованием. Или это работает? И если это так, как я могу распространять это? Нужно ли устанавливать VirtualBox, затем загружать какой-то файл, который я им предоставляю, или я могу легко создать один установщик?

Дов
источник
13
Virtualbox позволяет вам экспортировать Appliance . Этот файл может быть импортирован в любое программное обеспечение для виртуализации (VMWare, Virtualbox и т. Д.) И настраивается на локальное оборудование. Кажется, это то, что вы просите. Один установщик невозможен, потому что вы не можете запустить одну и ту же программу в Windows (.exe) и Mac (.app).
GiantTree
Нужно ли устанавливать заново по-другому, или я могу сохранить свою виртуальную машину как устройство?
Дов
Вы можете сохранить любую виртуальную машину в качестве устройства в Virtualbox. Просто сделайте: File -> Export Appliance Ctrl + E
GiantTree
Некоторые предлагают Vagrant в качестве решения, так как размер файла может быть проблемой при загрузке файла вашего устройства. По правде говоря, если вы устанавливаете минималистичную среду и используете тонкую подготовку при создании виртуального HD, вы можете получить очень выполнимый файл размером 100 МБ или меньше. Просто хотел добавить это, поскольку никто другой не обратился к этому.
Герута
1
@gronostaj: Звучит так, будто эта бедная виртуальная машина попала в матрицу! : O
Zaibis

Ответы:

24

Мне нравится ответ mperrin на Vagrant , но, как вы можете видеть из комментариев, мое личное мнение состоит в том, чтобы «сохранить его простым», и я бы порекомендовал простой экспорт VirtualBox OVA, как вы настроили, и передать его своим студентам. ,

Тем не менее, вы спрашиваете это:

Вопрос в том, как люди работают с разным графическим оборудованием. Или это работает? И если это так, как я могу распространять это? Нужно ли устанавливать VirtualBox, затем загружать какой-то файл, который я им предоставляю, или я могу легко создать один установщик?

Переход в DevOps

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

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

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

Возможно, в конце вы должны просто иметь некоторые базовые требования к использованию инструментов курса и быть гибкими в их реализации.

Будьте гибкими в отношении того, как используются инструменты

Например, я много занимаюсь разработкой PHP и занимаюсь системным администрированием / DevOps, связанным с разработкой PHP. И так как я на Mac, я предпочитаю использовать MAMP для локальной разработки. Но я работаю с разработчиками, которые используют Linux или Windows для своей разработки. Черт, некоторые любят использовать Vagrant в сочетании с VirtualBox для своих нужд разработки LAMP. И мое отношение - мне все равно, какова их базовая настройка ОС. Пока их версия PHP соответствует версиям, которые используют мои клиенты, у меня все в порядке.

Иногда разработчик заявляет, что ошибка вызвана тем, что, например, код, который я тестировал на MAMP, «не совпадает» с тем, который был бы в настройке Linux LAMP. И я говорю со 100% уверенностью, что я всегда доказывал, что проблема не в базовой ОС, а в самой PHP-кодировке.

Таким образом, вся эта болтовня заключается в том, чтобы в основном передать следующее: просто будьте гибки в объяснении использования установки VirtualBox студентам и не ожидайте, что кормление ОС ложкой просто завершит все проблемы. Это может выбить 95% ваших проблем из парка, но эти оставшиеся 5% всегда придется решать каким-то образом. Итак, посмотрите на установку VirtualBox - и, возможно, скрипт Vagrant - как на инструмент, который можно использовать в арсенале, чтобы облегчить жизнь некоторым, но не обязательно конечное решение для всех проблем.

JakeGould
источник
3
обучение C ++, Java, структурам данных, и это попытка уйти от sysadmin / devops, которая меня не интересует!
Дов
1
@Dov Что ж, если это так, то лучше всего экспортировать OVA VirtualBox и распространять его среди своих учеников.
JakeGould
18

Тебе стоит взглянуть на Вагранта .

Vagrant поддерживает VirtualBox и позволяет:

Создавать и настраивать легкие, воспроизводимые и переносимые среды разработки.

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

После того, как VirtualBox и Vagrant устанавливаются просто:

vagrant up

Будет:

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

mperrin
источник
7
Хотя Vagrant - неплохая идея, просто экспортируйте устройство VirtualBox, предлагая студентам установить VirtualBox и затем импортировать это устройство в VirtualBox, выполняя работу за несколько шагов, без Vagrant, буквально перестраивающего машину с нуля, или с риском Vagrant. идиосинкразии появляются в миксе.
JakeGould
1
Вы правы, экспорт, безусловно, самый прямой и простой подход. Но в зависимости от потребностей я подумал, что здесь нужно упомянуть бродягу. Управление загрузкой / выгрузкой больших файлов ova может быть проблематичным, особенно если обновления необходимо выполнять для каждого проекта. Более подробное сравнение двух подходов можно найти в этой очень хорошей теме superuser.com/questions/584100/…
mperrin
Довольно хорошие заметки на этот другой пост. У меня такое чувство: если вам кажется, что вам нужен Vagrant для развертывания более двух серверов с помощью сценариев, сделайте это. Но для большинства пользователей настольных компьютеров и простых разработчиков просто «раскручивать свои» через VirtualBox работает так же хорошо.
JakeGould
1
В вашем случае еще одним преимуществом vagrant перед экспортом является возможность для ваших студентов научиться «как» устанавливать и настраивать образ, изучая сценарий инициализации. Гораздо проще, чем проходить историю изображения.
Мперрин
8

Это не имеет никакого значения - virtualbox (и все остальные программы для виртуализации) эмулирует свой собственный видеоадаптер (IIRC cirrus logic). В то время как традиционный файл virtualbox разделен на разные файлы для настроек и хранения, вы можете экспортировать его в файл ovf, как предложено. Если ваши студенты могут установить virtualbox или vmware, это должно быть тривиально. Если нет, им нужно учиться.

Установка virtualbox довольно тривиальна (если у вас есть аппаратная поддержка).

Я хотел бы предложить несколько вещей: оставить виртуальную машину 32-битной (чтобы вам не нужно было беспокоиться о поддержке VT-X на хосте), создав инструкции по установке virtualbox на большие 2 ОС (Windows проста, linux требуется несколько дополнительных шагов) и импорт файла OVF. Это также означает, что если студенты хотят использовать vmware player или что-то подобное, они могут. Используйте NAT для работы в сети, если вам не нужен сервер, доступный извне.

Если производительность не является проблемой, вы, вероятно, можете просто связать все в экземпляр QEMU (они могут быть настроены для автономного запуска) и подходящие сценарии запуска. Я бы посчитал это последним средством.

Я хотел бы отметить, что многие университеты на самом деле поставляют виртуальные машины с подходящими инструментами ( IIRC stanfords CS 50 делает это и является свободно доступным курсом от edx), поэтому, возможно, стоит посмотреть, как они это делают.

Подмастерье Компьютерщик
источник
3

В качестве альтернативы большинству технологий виртуализации, Linux (например, Ubuntu) может быть установлен на флэш-накопителе. Практически каждый компьютер будет загружаться с большого диска, и большинство современных инсталляторов обнаружат видеокарты / сетевые карты во время загрузки. Если вы установите 32-разрядную версию Ubuntu, она будет работать практически на всем оборудовании, которое люди могут иметь дома.

Их легко раздавать и не требуют ЛЮБОГО дополнительного установленного программного обеспечения. Их также легко можно перемещать с машины на машину - отсоедините ее от школьного компьютера и положите в карман. Когда вы вернетесь домой, просто подключите его.

Их можно достать довольно дешево (я понимаю, что школьные бюджеты очень ограничены!); в зависимости от того, какое приложение будет запущено на машине, достаточно 4 ГБ, возможно, 8 ГБ.

AMADANON Inc.
источник
У всех в аспирантуре есть ноутбук. Я не думаю, что есть необходимость в USB.
Дов
1

Еще один вариант для рассмотрения. Если вы не очень беспокоитесь о том, что у них есть графический интерфейс, вы можете использовать что-то вроде терминала .

Вы можете создать свой собственный общедоступный снимок и просто сохранить его доступным для своих студентов. Это похоже на подход VirtualBox, но вместо того, чтобы устанавливать виртуальные машины на их собственных машинах, они находятся в облаке на чужой машине.

Тогда все, что им нужно , это достаточно современный веб-браузер. И если они заинтересованы, они могут настроить его так, чтобы они могли использовать SSH / Putty / и т.д.

Согласно их данным, если учащиеся используют микроэкземпляр (256 МБ ОЗУ, пару ГБ дискового пространства), если они приостанавливают виртуальную машину, когда они ее не используют, это будет стоить им 9 долларов в год на 8 часов работы / день. Я не могу говорить за терминал.com, но подозреваю, что если вы свяжетесь с ними, они смогут предоставить вам какую-то образовательную скидку.

Уэйн Вернер
источник
Аналогичным сервисом является бесплатный общедоступный доступ к оболочке [SDF.org] (sdf.org/?join) для преподавателей. Научите FAQ . Не ВМ, но все равно хорошо.
HSchmale