Простая установка различных дистрибутивов по сети
Я работаю над некоторым программным обеспечением, которое я хотел бы протестировать в различных дистрибутивах Linux, чтобы сказать, что я знаю, что оно работает на них. Программное обеспечение взаимодействует с аппаратным устройством через USB и Bluetooth, поэтому я бы предпочел использовать его на реальном оборудовании, а не на виртуальной машине.
Один из подходов, безусловно, состоит в том, чтобы загрузить интересующие меня дистрибутивы и записать их на CD /DVD, или скопировать файлы на USB-накопитель, и в прошлом я использовал оба подхода для получения хорошего эффекта. USB-флешки, которые у меня есть, занимают всего 512 МБ, и, хотя я могу перетаскивать на них установщики ОС по требованию, я беспокоюсь, что начну копировать файлы, отвлекаться и позже вернусь, чтобы чуть-чуть продвинуться в установке ОС. Я действительно хотел бы начать это и забыть это. (Правда, я ожидаю, что мне нужно будет ввести учетную запись пользователя, имя хоста, часовой пояс и т. Д.).
PXE загрузка по локальной сети имеет для меня смысл.
В большинстве инструкций, которые я видел по этому поводу, вы настраиваете свой собственный DHCP-сервер и используете его вместо того, чтобы любое устройство выдавало DHCP-адреса, или помещаете его в собственную миниатюрную локальную сеть. Я хотел бы, чтобы мой существующий DHCP-сервер работал *, и я также хотел бы, чтобы установленный компьютер имел возможность получать обновления из Интернета **. Я выполнил некоторые инструкции по использованию dnsmasq для этого и столкнулся с трудностями. (У меня нет точных шагов передо мной прямо сейчас, и это может вообще пойти по неверному пути. Если это хороший путь, я был бы рад предоставить более подробную информацию.) Я вижу, что есть много возможностей, от кикстарта Red Hat до gPXE.
Я должен отметить, что я на самом деле не создаю образы машин - я просто хочу разместить на нем разные дистрибутивы, если можно так выразиться, а не таким образом, например, для настольного компьютера предприятия. (Как администратор Mac, я часто устанавливал золотые мастера и создавал образ диска жесткого диска, а затем копировал его по сети, или использовал образы базовой ОС и добавлял к нему пакеты. Что я ищу ибо здесь больше похоже на то, что установщик доступен через локальную сеть, а не на полный образ диска).
Я также хотел бы добавить, что я не против наличия загрузочного носителя (USB, DVD), который сообщает компьютеру: "Вот сервер. Спросите его, для каких операционных систем у него есть установщики". Кроме того, это плюс для возможности одновременной работы двух или трех компьютеров (да, в небольшом масштабе, но n > 1), что является еще одной причиной, по которой я считаю, что делать это по сети - большой плюс.
Есть ли у кого-нибудь рекомендации о том, как быстро и легко развернуть различные дистрибутивы Linux на тестовых компьютерах, чтобы после настройки можно было начинать установку компьютеров и позже возвращаться к ним для тестирования программного обеспечения на них? (Это не обязательно должно быть через сеть, но после того, как разовая настройка выяснена, это, конечно, кажется мне самым простым способом).
* Я на самом деле тестирую в своей домашней сети, и моя базовая станция кабельного модема / Wi-Fi передает DHCP-адреса. Я понимаю, что могу отключить это и заставить другой компьютер сделать это, но я не работаю дома 24 часа в сутки, и это кажется глупым только для DHCP.
** Это делает использование меньшей отдельной сети более сложным, если только я не соединю две сети, и, не имея двух NICS для одного блока, это звучит как больше усилий, чем я надеюсь потратить. Поистине, я мог бы установить ОС в отдельной сети, а затем переместить ее в сеть с прямым доступом к Интернету, но это идет вразрез с ее запуском и забыванием.
4 ответа
Как и другие предполагают, есть огромные преимущества для использования PXE + DHCP
Но есть много ручных шагов, чтобы полностью "развернуть" развертывание PXE + DHCP. Вы должны сделать некоторые сценарии, приклеивание воздуховода, чтобы получить, где вы хотите.
Вместо того, чтобы пытаться создать собственное решение, вы можете использовать существующий инструмент автоматизации PXE/DHCP. Потому что, если вы раскроете свое собственное решение, вы не сможете воспользоваться новыми функциями, предлагаемыми инструментами с открытым исходным кодом.
Как Cobbler, который занимается управлением несколькими ручными задачами, такими как добавление записей DHCP, настройка TFTP, шаблоны кикстарта и т. Д.
Еще один замечательный инструмент для той же цели, Форман. У него другой подход к тем же проблемам, а также глубокая интеграция с Puppet(использование Puppet с Foreman не обязательно, но помогает.) Вам нужен компонент Foreman-Proxy, чтобы позаботиться о DHCP/TFTP. Ниже приведен скриншот с изображением Foreman, предоставляющего виртуальную машину, но то же относится и к физическому хосту. Еще одно руководство по установке.
При наличии всего необходимого, установка серверов становится действительно простой задачей с Cobbler или Foreman. У них есть API-интерфейсы, так что вы можете создавать небольшие оставшиеся ручные задачи
Это может занять некоторое время, чтобы получить все эти настройки, но как только вы это сделаете, вы можете сосредоточиться на своих основных задачах.
PXE, как вы упоминаете, это то, с чем мне очень повезло, потому что вы делаете то, о чем вы говорите. Ключ, который вы добавляете в работу, заключается в том, что вы не хотите менять свой DHCP-сервер... Это означает, что стандартный PXE в системах не будет работать, потому что он ожидает, что DHCP-сервер даст ему Атрибуты "следующий сервер" и "имя файла" (которые клиент PXE использует для загрузки).
Итак, вам нужно захватить gPXE или iPXE (замена gPXE) и настроить его для включения атрибутов "следующий сервер" и "имя файла", затем записать его на USB или CD и загрузить с него. Это позволит вам дать эти атрибуты без необходимости раздачи их DHCP-сервером. Это описано на веб-странице iPXE по встроенным сценариям.
Затем вам нужно настроить TFTP или HTTP-сервер (gPXE/iPXE будет поддерживать HTTP, а стандартный PXE поддерживает только TFTP). Этот сервер раздает файлы, необходимые для загрузки и установки. Мне нравится получать все модные и цепочки "pxelinux.o" с файлом меню. В Linux Journal, похоже, есть хорошая статья о меню PXE, на странице 2 рассказывается о меню. У меня есть меню, настроенные для каждого класса дистрибутива (Fedora, CentOS, Ubuntu) плюс некоторые утилиты (memtest), затем у этих меню есть выбор для версий (Hardy, Lucid, 32-bit, 64-bit), затем у этих меню есть выбор для "установки" и "спасения" или, может быть, "сервер" против "рабочего стола".
Введите описание ссылки здесь. Сервер Boot.FedoraProject.org может быть полезен, вы можете сначала указать на него iPXE или использовать его инструкции, чтобы получить представление об этом, затем снять то, что вам нужно, и добавить другие дистрибутивы.
Если вы действительно хотите автоматизировать установку, так что вы можете выбрать пункт меню, а затем просто позволить ему вступить во владение, вам нужно использовать "preseeding" (на основе Debian) или kickstart (на основе Fedora), где вы можете указать Установщик точно, что делать, в том числе форматирование дисков (ОПАСНОСТЬ:-), пакеты, конфигурации и т. д...
PXE на самом деле не так уж сложен, и он делает многие из этих вещей такими простыми. Я использую PXE-сервер уже почти 10 лет, и я редко записываю носители. Кроме того, подключение к сети с большого сетевого сервера намного быстрее, чем установка с CD или DVD. Обычно установка CentOS занимает 3 минуты.
Я слышал хорошие вещи о сапожнике.
Его цель - максимально автоматизировать установку с помощью тесной интеграции pxeboot и выполнения некоторых тяжелых задач по настройке TFTP, DHCP и т. Д. Для использования PXE.
После того, как вы настроили его для базового использования, он также получил довольно крутой cobbler import
команда, которая отрывает дистрибутив сразу от CD/DVD и готовит его к использованию.
Почему бы не использовать виртуальную машину вместо этого? Это будет удобнее, чем DHCP-серверы и серверы переизображения. Даже если вы выберете маршрут pxe, это потребует гораздо больших усилий по сравнению с виртуализацией. Я бы посоветовал вам оценить ваши требования и по возможности рассмотреть подход VM.
Virtualbox находится в свободном доступе.