Я хотел бы понять разницу между Puppet и Ansible, особенно какие ограничения Puppet имеет по сравнению с Ansible.
Есть ли вещи, которые вы не можете сделать в Puppet, но можете в Ansible? Другими словами, почему некоторые люди уходят из Puppet в Ansible?
ansible
comparison
puppet
kenorb
источник
источник
Ответы:
Есть, конечно, несколько плюсов и минусов для каждого из Puppet, Ansible, Chef и добавьте сюда свой любимый инструмент . Поэтому я постараюсь держаться подальше от мнений и делиться тем, что действительно здорово в Ansible.
Основная возможность, которая ставит Ansible над остальными, заключается в том, что нет необходимости полагаться на какой-либо настраиваемый / дополнительный агент, работающий на целевых узлах, а основываться только на ssh-соединениях. Да, для этого по-прежнему требуются ssh-сервер, Python и несколько библиотек Python на узлах, и если ваш дистрибутив (или, к счастью, есть несколько оконных узлов) не поставляется с ними, он будет немного больно до начальной загрузки. Но это маловероятно и может даже заставить вас снова подумать о своем дистрибутиве.
Это упростит мониторинг, не потребляет дополнительных ресурсов, не заставит систему все время запускать демона в качестве пользователя root и в целом будет лучше в философии UNIX. Шеф-повар
chef-solo
, Puppet может работать без хозяина, но они оба работают "в другом направлении", клонируя и используя крючки соответственно. Хотя с Ansible слияние в исходном репозитории может инициировать развертывание таким образом, который нам всем удобен, будь то в Jenkins, в git master или в каком-нибудь другом инструменте, например, Rundeck.источник
template
модуль Ansible делает это довольно легко.Нет, люди, переезжающие из Puppet в Ansible (или наоборот), не имеют ничего общего с тем, что может или не может быть достигнуто с помощью любого инструмента. Кукольный / Шеф-повар / Ansible - это в основном дело вкуса.
Например, Ansible основан на Python, и разработчики Python обычно чувствуют себя с ним как дома (не нужно изучать DSL) или Ruby (для Chef)). Разработчикам Python проще расширять Ansible.
Но по сути они все очень похожи с точки зрения того, что вы можете достичь. Некоторые имеют относительные преимущества в одних областях и недостатки в других, но обычно выбор между ними определяется стилем / культурой / предпочтениями команды.
источник
До Puppet 4.0 не было простого способа организации приложений, распределенных по нескольким серверам или сервисам, поскольку было сложно специально упорядочить действия в Puppet, который был выбором дизайна . Ansible лучше организовывал и упорядочивал шаги, особенно на нескольких серверах. Это было особенно важно в приложениях, где неправильный порядок шагов может привести к ошибкам, которые невозможно исправить путем повторения этих шагов, пока не будет достигнута согласованность.
Это больше не проблема, и поэтому различия в значительной степени основаны на предпочтениях.
источник