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