Какой инструмент подходит для синхронизации 40+ машин

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

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

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

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

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

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

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

1 ответ

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

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

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

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

Другие вопросы по тегам