Какой инструмент подходит для синхронизации 40+ машин
У меня есть примерно 40 устройств, работающих под управлением Debian в Интернете с известными динамическими IP-адресами. Они имеют ограниченную пропускную способность (на 3g мобильных, с тарифным планом передачи данных) У меня есть доступ по SSH. Иногда возникает необходимость обновить эти машины. Есть только 2 файла и каталог журналов, которые не идентичны.
Теперь я использую специальный скрипт rsync / install и зацикливаюсь на всех машинах.
Больше всего меня беспокоит то, что рабочий процесс довольно подвержен ошибкам:
Обновление системы выполняется сначала на тестовом устройстве. (установка-удаление пакетов, установка файлов конфигурации в etc, обновление ядра, установка новых сервисов с помощью скриптов /etc/init.d и так далее)
попробуйте воспроизвести изменения в пользовательском скрипте (вот где проблема)
развернуть изменения в цикле
У вас есть какие-нибудь рекомендации? (puppet?, chef?, rsync вся файловая система?, переместить файловую систему под контроль версий?)
1 ответ
Ansible будет моей рекомендацией.
Он может делать все на шаге 1 через SSH, не требуя установки какого-либо агента на устройства (хотя рекомендуется Python, включая библиотеку JSON). Вместо шага 2 я бы предложил запустить шаг 1 на каждом устройстве.
Puppet отлично подходит для сред с большим количеством устройств. Он может делать все на шаге 1, по крайней мере, так же, как Ansible, но требует некоторых дополнительных усилий (установка Puppet Agent и зависимостей на каждом устройстве, настройка Puppet Master, разрешение устройствам подключаться к Puppet Master через HTTP.
rsync
на первый взгляд может показаться простым решением. Однако вы, вероятно, потратите много времени на написание сценариев вокруг проблем, которые другие инструменты уже решают или с которыми не сталкиваются в первый раз.