1

У меня есть примерно 40 устройств, работающих под управлением Debian в Интернете с известными динамическими IP-адресами. Они имеют ограниченную пропускную способность (на 3g Mobile, с тарифным планом передачи данных Piad) У меня есть доступ по SSH. Иногда возникает необходимость обновить эти машины. Есть только 2 файла и каталог журналов, которые не идентичны.

Теперь я использую пользовательский скрипт rsync/install и зацикливаюсь на всех машинах.

Больше всего меня беспокоит то, что рабочий процесс довольно подвержен ошибкам:

  1. Обновление системы выполняется в первую очередь на тестовом устройстве. (установка-удаление пакетов, установка конфигурационных файлов в etc, обновление ядра, установка новых сервисов через скрипты /etc/init.d, что-то вроде этого)

  2. попытайтесь воспроизвести изменения в пользовательском скрипте (вот где проблема)

  3. развернуть изменения в цикле

У вас есть какие-нибудь рекомендации? (кукольный ?, шеф-повар? rsync вся файловая система ?, переместить файловую систему под контроль версий?)

1 ответ1

1

Ansible будет моей рекомендацией.

Он может делать все на шаге 1 через SSH, не требуя установки какого-либо агента на устройства (Python вкл. JSON библиотека рекомендуется, хотя). Вместо шага 2 я бы предложил запустить шаг 1 на каждом устройстве.

Puppet отлично подходит для сред с большим количеством устройств. Он может делать все на шаге 1, по крайней мере, так же, как Ansible, но требует некоторых дополнительных усилий (установка Puppet Agent и зависимостей на каждом устройстве, настройка Puppet Master, разрешение устройствам подключаться к Puppet Master через HTTP.

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

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