19

Я являюсь ТП для курса по программированию и отвечаю за создание образа виртуальной машины на основе Ubuntu 14.04 LTS со всем необходимым программным обеспечением (для разработки на C++ и Python), предварительно установленным так, чтобы у всех студентов была запущена одна и та же виртуальная система, и мы избегали трудностей заставить все работать на разных машинах и операционных системах. Мы намерены использовать Virtual Box в качестве программного обеспечения для виртуальной машины, поскольку оно является бесплатным и доступно кроссплатформенным.

Наивно, я бы просто использовал образ диска Ubuntu 14.04 LTS, запустил его в моем Virtual Box, установил его на виртуальный жесткий диск (VDI), настроил "студенческую" учетную запись с предопределенным паролем, установил все необходимое программное обеспечение, закрыл вниз виртуальной машины и распространять файл VDI. Мы просим каждого учащегося импортировать VDI в Virtual Box, запустить его и настроить свою личную учетную запись (или просто использовать учетную запись по умолчанию для учащихся).

  • Является ли вышеуказанная процедура жизнеспособной?
  • На какую ловушку стоит обратить внимание? Нам нужно, чтобы это было в значительной степени безошибочно. Мы рассчитываем на 80+ студентов и всего четыре ТА, поэтому мы не можем предоставить индивидуальную поддержку.
  • Есть ли недостатки в использовании динамически размещаемого виртуального жесткого диска VDI-типа?
  • Это нормально для меня, чтобы установить гостевые дополнения Virtual Box сразу, или это делает что-то для конкретного хоста?
  • Есть ли более элегантный способ обработки учетной записи пользователя? В идеале, Ubuntu может использовать их при помощи мастера создания учетной записи и устанавливать их пароли (а также добавлять их в файл sudoers) при первой загрузке образа. Это не приоритет, хотя. Я думаю, с учетной записью по умолчанию это хорошо.

3 ответа3

18

Хотя этот вопрос в некоторой степени основан на мнении

Да, эта процедура жизнеспособна - я верю, что она выполнит то, что вы ищете, и это то, что я делал в прошлом с другими дистрибутивами Linux.

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

Недостатки динамического диска в том, что хост-операционная система должна выделять все больше и больше дискового пространства по мере роста виртуальной машины вместе с данными / обновлениями. Это приводит к снижению производительности, которое иногда может быть головной болью, особенно если вы работаете на маломощной виртуальной машине (мощность хост-машины минус мощность, используемая для расширения диска, обычно приводит к некоторой задержке виртуальной машины)... это также потенциально может привести к затем непереносимые (не все машины в вашей лаборатории могут иметь более 100 ГБ + после того, как учащийся испортил свою виртуальную машину)

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

Создание элегантного пользователя - не уверен, может быть скрипт, который запускается при первом запуске и просит пользователя создать новую учетную запись, прежде чем скрипт самоуничтожится? Я покопаюсь и вернусь к вам, когда у меня останется 5 минут.

Надеюсь, это хотя бы частично поможет.

13

Точно отвечая на ваш вопрос: если вам нужно настроить виртуальную машину и передать им виртуальную виртуальную машину VirtualBox, я рекомендую использовать Packer для предварительной упаковки виртуальной машины со всеми необходимыми зависимостями. Он создан именно для этой цели и позволяет вам раскручивать образ из ISO, выполнять любое необходимое выделение для этого образа, а затем создает поставляемый образ виртуальной машины VirtualBox. Это также хорошо для вас, потому что в нем точно документировано, что было сделано с результатом на случай, если вы когда-нибудь захотите воспроизвести его / добавить что-то к нему. Также вы можете проверить проект в системе контроля версий и внести изменения. Вот пример того, как вы начали.

Однако, если вы хотите, чтобы они запускались быстро, я рекомендую использовать Vagrant и распространять среди ваших учеников Vagrantfile, который выполняет желаемую подготовку, необходимую для стандартного образа Ubuntu. Это имеет несколько преимуществ:

  • Vagrant работает «из коробки» с VirtualBox и будет обрабатывать все сложные задачи для студентов, такие как настройка общих папок, чтобы они могли легко копировать файлы между виртуальной машиной и хостом, настраивая сеть, чтобы предоставить им доступ в интернет к коробке. , так далее. Это также экономит ваше время на документирование / устранение проблем с настройкой VirtualBox для них.
  • Vagrantfile намного меньше, чем поставляемая VM. Если вы хотите что-то изменить / добавить в виртуальную машину в середине курса, вам не нужно перестраивать новую виртуальную машину, просто дайте им обновленный Vagrantfile.
  • Если они что-то испортят за пределами своей способности починить, они могут безболезненно уничтожить / повторно развернуть ВМ
  • Vagrantfile покажет вашим ученикам, что именно было сделано с виртуальной машиной, так что, когда они достигнут достаточного уровня понимания, они смогут увидеть, что происходит под капотом, и, возможно, извлечь из этого уроки.

Вот пример Vagrantfile, показывающий, как выполнить некоторую подготовку к образу Ubuntu 14.04.

9

Совершенно возможно. Альтернативой может быть Vagrant, Puppet, Chef или что-то подобное для создания виртуальной машины с нуля, но это очень много работы для настройки.

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

Обратите внимание: Скорее всего, вам нужен доступ к сети / Интернету внутри виртуальной машины. Это может быть либо мостом или NAT на хост. Независимо от того, что вы выберете, вы должны будете проинструктировать своих студентов, как настроить это на стороне хоста. Просто установите сетевой адаптер внутри виртуальной машины в качестве устройства DHCP. Это безопасная отправная точка для большинства конфигураций, даже если впоследствии пользователю необходимо вручную настроить статический IP-адрес.
Размещение статического IP-адреса в виртуальной машине действительно вызывает проблемы. Он уже используется другой виртуальной машиной, подключенной к сети в той же локальной сети ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .