Назад | Перейти на главную страницу

Puppet VS Ansible + лучший инструмент для автоматического удаленного управления

есть много удаленных инструментов для задач автоматизации, таких как марионетка или доступный

Моя цель - выполнять множество удаленных задач на машине Linux, например:

  1. выполнить блок команды Linux,

  2. копировать файлы с главной машины на удаленные машины Linux

  3. запустить скрипт на удаленной машине Linux

и так далее

Автоматизация и удаленное управление - довольно разные варианты использования. При выборе таких инструментов следует учитывать, насколько быстро вам нужно, чтобы вся совокупность машин достигала одного и того же состояния, и как быстро вы планируете изменить набор команд.

Системы Puppet и Chef (и, вероятно, другие системы управления конфигурацией):

  • Слабо сходящийся. Прежде чем все увидит обновления, может пройти полчаса. Иногда это нормально. Иногда это не так.
  • Плохо справляются со специальными командами. Если вам нужно запустить git-pull в заданном каталоге сейчас, это требует значительных усилий.
  • Надежные методы программного определения типов машин. Это облегчает задачу «что для чего нужно».
  • В основном на основе агентов. Узлы опрашивают центральную систему на предмет обновлений, а не центральная система, отправляющая обновления по расписанию. Это большая часть понятия «рыхлая консистенция».

Ansible и другие неагентированные системы:

  • Разрешить специальные команды в качестве основной функции. Нужно бежать apt-get update openssl на все? Легко!
  • Разрешить более тесную конвергенцию. Вы можете сделать и то, и другое сделай это за 30 минут а также сделай это прямо сейчас, черт возьми.
  • Обычно требуются процессы управления запасами. Где что-то вроде марионетки можно заставить делать такие вещи, как развернуть nginx на машинах с RAMSIZE> = 2048 ГБ и он будет работать для любой такой системы, Ansible и тому подобное нужно сказать, что этой системе нужен nginx. Это усложняет задачу «что-что-нужно».

Я не буду вдаваться в подробности о масштабируемости, поскольку все они могут довольно легко обрабатывать тысячи узлов. Все меняется, когда вы попадаете в 10 000 узлов.

Я знаю развернутые системы, в которых в дополнение к Ansible используется система вроде Puppet / Chef. Puppet / Chef используется для поддержания базовой конфигурации в системе, а система ansible используется для удаленного управления и для задач, требующих более строгой согласованности (например, для развертывания кода приложения). Иногда лучше и то, и другое.