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

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

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

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

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

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

решение1

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

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

Учитывая, что вы используете что-то на основе Ubuntu, вы можете рассмотреть возможность использования комбинацииМААСиДжуджу, так как это стандартный стек для выполнения подобных задач в Ubuntu.

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

решение2

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

Связанный контент