Как сохранить 40 копий одного и того же компьютера?

434
chr_lt_ney

Я обслуживаю 40 стационарных установленных терминалов (с сенсорным экраном, без мыши и клавиатуры) в окружении. На этих 40 ПК установлены уменьшенные версии Ubuntu и Chromium, поскольку их единственная цель - обслуживать веб-приложения в полноэкранном режиме.

Теперь вот проблема: несколько дней назад у нас произошел сбой питания, все терминалы отключились. Когда я перезапустил их все снова, ни один сенсорный экран не работал, я понятия не имею, почему. Тем не менее, переустановка системы с флешки CloneZilla, это решило проблему. Надо было много работы - подключить клавиатуру и флешку, изменить настройки BIOS для загрузки с флешки, переустановить все 40 терминалов.

Как это можно сделать лучше? Моим сценарием мечты было бы отменить одно изменение (скажем, мне бы хотелось, чтобы на каждом терминале также был небольшой сервер NodeJ, или настроить доступ по SSH). Я посмотрел на запуск серверов PXE, но это, очевидно, занимает ОЧЕНЬ много времени (образ 800 МБ x 40 занимает довольно много времени для загрузки).

У кого-нибудь есть лучшее решение о том, как эта установка может быть поддержана в лучшем виде?

0

2 ответа на вопрос

4
Austin Hemmelgarn

Ну, PXE не обязательно должен быть тем случаем, когда вы загружаете образ на каждый сервер во время загрузки. Фактически, более традиционное использование этого (по крайней мере, когда имело дело с системами UNIX) состояло в том, чтобы обеспечить бездисковую загрузку для систем, у которых их корневая файловая система была на NFS (или в наши дни, возможно, какая-то другая сетевая файловая система). Я не совсем уверен, насколько хорошо это может сработать для вас (он обменивает временные проблемы PXE на одну точку сбоя на сервере NFS), но, возможно, стоит посмотреть. Вы также можете делать подобные вещи с iSCSI или NBD, хотя их немного сложнее настроить.

Вы также можете посмотреть на возможность загрузки по цепочке, аналогично тому, как SystemRescueCD делает . При сетевой загрузке ему нужно только загрузить syslinux, ядро ​​и начальный ram-диск по TFTP, а затем загрузить действительный образ системы по другому протоколу (например, там, где я работаю, мы делаем это по HTTP). TFTP - ужасно неэффективный протокол (он требует отдельного подтверждения каждого блока перед отправкой следующего блока и по умолчанию использует очень маленький размер блока), поэтому это может значительно ускорить процесс (у нас есть сеть, в которой я работаю установите netboot SystemRescueCD и загрузите образ системы по HTTP вместо TFTP, что сокращает время загрузки с почти 15 минут до примерно 3 в системах, на которых я тестировал его при настройке).

Учитывая, что вы используете что-то на основе Ubuntu, вы можете использовать комбинацию MAAS и Juju, так как это стандартный стек для таких вещей в Ubuntu.

Помимо всего этого, однако, если вы можете с уверенностью предположить, что массовые простои, подобные тому, что вы видели, редки (и, следовательно, вам вряд ли придется переустанавливать все 40 систем сразу), вы можете просто взглянуть на автоматизированный инструмент управления. Это не поможет при установке систем, но значительно упростит развертывание изменений в конфигурации или пакетах в системах. Мне особенно нравится Ansible для такого рода вещей, в основном из-за того, насколько просто его настроить (вам буквально просто нужен пароль без пароля SSH и один конкретный пакет python, установленный в системах, которыми вы собираетесь управлять), и тем, что что он использует декларативный (в основном) декларативный язык для выполнения задач, которые действительно легко выучить. Кукольный, повар и соль другие три популярных варианта для такого типа вещей, но у меня никогда не было никакого личного опыта с ними кроме простой оценки, поэтому я не могу дать какой-либо совет, какой из них может быть лучшим для вашего использования.

Большое спасибо, это был очень подробный ответ! Я влюбился в HTTP-штуку и должен спросить: так что вы в основном загружаетесь в SystemRescureCD с TFTP, и с этого момента, как бы я мог продолжить HTTP? Мой TFTP-сервер - Windows, клиенты - Ubuntu (я также мог легко использовать бездисковые опции). chr_lt_ney 6 лет назад 0
@chr_lt_ney Лучший совет, который я могу дать, это проверить официальную документацию для SystemRescueCD по этому адресу, расположенную здесь: http://www.system-rescue-cd.org/manual/PXE_network_booting/. Я никогда не пытался настроить это на сервере Windows TFTP, поэтому, вероятно, я не могу дать много советов. Austin Hemmelgarn 6 лет назад 0
0
psusi

Я также рекомендую бездисковую загрузку PXE, но в качестве альтернативы вы можете легко сделать резервную копию одной системы, а затем просто восстановить ее на все 40 в этой ситуации. Это было бы быстрее, чем переустановка в 40 раз.

Похожие вопросы