Puppet vs Chef, за и против от пользователей и вариантов использования [закрыто]

56

Я уже погуглил и прочитал статью «чтобы марионетка или шеф-повар, что это вопрос» .

Меня интересуют варианты использования, реальные реализации, в которых люди выбирали одно или другое на основе реальных проблем.

Меня особенно интересует интеграция с проблемами сапожников (я знаю, что кукольный - это стандартный подход в этом направлении); как у кого-нибудь есть опыт интеграции шеф-повара ?

заранее спасибо

drAlberT
источник
связанные с : serverfault.com/questions/42565/...
садок
1
@ Warren: пост, который вы обрисовали, не имеет отношения. Я прошу прямое сравнение между этими инструментами, а не просто упоминание о шеф-поваре, как это было сделано в посте.
drAlberT
Чтобы ответить на вопрос «cobbler + chef», у меня в ветке «cobbler checkout» есть ветка, возвращающая JSON для использования Chef, но у меня нет системы для ее проверки. Дайте мне знать, если вы заинтересованы в тестировании.
2010 года
Конечно, но я не могу прямо сейчас ... Я собираюсь продолжить свои тесты через несколько месяцев, кое-что еще получило приоритет прямо сейчас
drAlberT
Что касается закрытия вопроса ... Я попросил "реальные проблемы", интеграцию сапожника, варианты использования ... не просто "мнения", а мотивированный выбор. Я против закрытия, как вы можете поспорить :)
drAlberT

Ответы:

63

Честно говоря, я думаю, что это сводится к простой точке зрения: Chef кажется более императивным, программным решением, использование ruby ​​в качестве языка мгновенно заставляет меня надеяться, что кто-то перенес его на python, как и путь мира со всеми идеи рубина.

Это не то, что вы хотите для такого рода вещей, хотя. Вы хотите поговорить с пустотой, в которой будет находиться система, и объявить:

«В порту 80 вызывается с севера демон по имени nginx. Его задача - служить».

«Пользователь должен существовать, его имя должно быть chiggsy, и он должен быть одним из сильных в группе колеса»

«Поднимите стену огня, тонкого в местах 80,443,8080»

И так далее, хотя, возможно, на языке менее цветочным.

Кукольный поддерживает эту парадигму лучше ИМО. Я бы использовал любой из них, у меня не было предпочтения, но когда дело дошло до меня, декларативное подходило мне лучше.

Марионетка.

chiggsy
источник
2
В будущем вы могли бы даже сделать еще один шаг вперед и использовать дистрибутив Linux, в котором используется декларативная конфигурация: nixos.org/nixos
iElectric
19

Я написал подробное сравнение Chef с Puppet здесь: Puppet против Chef: 10 причин, почему Puppet выигрывает . Хотя он не включает варианты использования, я надеюсь, что он предоставит некоторые полезные отправные точки для людей, которые задаются вопросом, какой инструмент выбрать для автоматизации своей инфраструктуры.

Джон Арундел
источник
3
Очень хорошая работа. Даже если многие из того, что вы написали, связаны с простым фактом, что кукольный «старше» и намного более «поддерживается». Хорошо, это факт ... но я думаю, что никто бы никогда не использовал postfix, потому что у sendmail уже была большая публика ... Повторяю, хорошая работа, я приму это во внимание
drAlberT
AlberT - да, Puppet существует дольше, чем Chef, и поэтому обладает многими преимуществами первопроходца: зрелостью кода, базой разработчиков, установленной базой, площадкой для ума - об этом прямо говорится в статье. Технически ли Puppet превосходит Chef для задач автоматизации Linux? Возможно нет. Я все еще рекомендую Puppet vs. Chef, потому что это лидирующий на рынке инструмент управления конфигурацией.
Джон Арундел
2
Статья в блоге очень устарела, так как с 2011 года куколка поддерживает чистые рубиновые модули, а также имеет гораздо больше «глаголов», чем версия, которую оценил автор.
Роббыт
14

Извините за многословие. Используйте инструмент, который облегчает выполнение вашей работы. В этом смысл автоматизации, верно?

История: Я использовал Puppet на прошлых концертах, и в прошлом месяце я потратил около недели, пытаясь привыкнуть к шеф-повару, чтобы посмотреть, смогу ли я переключиться на мой новый концерт.

Я не прыгнул.

Жаргон: Одна из неприятных проблем с обеими этими системами - перегрузка жаргоном. (рецепты, шаблоны, узлы, роли, атрибуты, поставщики) Это продолжается и продолжается. Я обнаружил, что шеф сделал еще один шаг. (Нож, шеф и т. Д.)

Зрелость кода: достаточно сказать, что я нашел шеф-повара слишком грубым. Это очень похоже на то, что чувствовала кукла в .21 / .22 таймфрейме 3-4 года назад. Там происходит много потока.

Нельзя сказать, что этого не произошло и в марионетке. (Я заново обнаружил много замечательных особенностей в марионетках, которые появились только в последние несколько лет. - Соответствие регулярному выражению!)

Рубин: Мне не нравились все рубиновые перегрузки в Chef. (вам нужны драгоценные камни и грабли, прежде чем вы даже сможете начать) Вы можете использовать ruby ​​для решения сложных задач в кукольном а'ла-факторе, но вам это не нужно, если вы этого не хотите.

Сложность: мне не понравился GUI, фокусирующийся на шеф-поваре. Я понимаю, что это симпатично, и у куклы есть веб-интерфейс в работах как дополнение, но я чувствую, что это должно быть более разъединенным.

У шеф-повара гораздо более сложная архитектура. Это может масштабироваться лучше, но есть много потенциальных точек отказа.
http://wiki.opscode.com/display/chef/Architecture

Шеф-повар нуждается в couchdb, rabbitmq и solr в дополнение к API-серверу и веб-интерфейсу.

Мне просто нужен простой клиент-серверный интерфейс, для которого не требуется структура MVC, а за ним - сложное хранилище данных.

Кукольный намного проще в этом отделе. (не сказать, что не так много дополнений, чтобы сделать его более грязным)

Начало работы: в конце концов, я пошел с тем, что я знал. Потратив неделю на хакерство на стороне и едва сумев разобраться с шеф-поваром, я смог вернуться к марионетке и выяснить свои основные потребности за несколько часов. (управление пакетами, управление пользователями, шаблоны конфигурационных файлов)

Предостережение о модулях: Puppet недавно перешел на использование «модулей», предоставленных третьими сторонами. Я не заканчивал тем, что использовал их, и я нашел широкий диапазон в их качестве. Обязательно загляните под крышки и посмотрите, что и как они работают, прежде чем копаться в них.

Джоэл К
источник
5

Вот мнение: мы попробовали все из них в нашей компании, и мы предпочитаем марионетку. Просто потому, что им легко пользоваться.

Riaan
источник
Вы использовали какой-либо интерфейс для мониторинга выполнения Puppet?
SyRenity
1
@syrenity мы используем пользовательскую проверку nagios, которая проверяет mtime $ puppetvardir / state / state.yaml, который обновляется только при успешном запуске.
Rodjek
2
Шеф-повар так сложно вместо этого? Почему? С какими практическими трудностями сталкивается приближающийся шеф-повар, обходящий куклу?
DrAlberT
@NotNow: хорошо, я бы точно принял, поддержит ли он интеграцию сапожника в качестве альтернативы собственной системе обеспечения ...
drAlberT
1

Я сам видел случаи, когда управление 1000 хостами с разными конфигами намного проще с марионеткой. Такие компании, как Google, используют Puppet для своего развертывания.

Основная архитектура проекта puppet такова, что она работает намного лучше, чем другие, если вы настроите ее правильно. Для примера , добавляя свои собственные факты для пользовательских конфигов и т.д. ниже ссылок могут предоставить некоторую информацию http://slashroot.in/puppet-tutorial-installing-puppet-master-and-puppet-agent

http://slashroot.in/puppet-tutorial-how-does-puppet-work

Сарат
источник
0

Возможно, это изменилось с тех пор, как я пытался это сделать в последний раз, но когда я пытался использовать chef на RHEL, не было четкого способа его установки. Кто-то создал репозиторий yum, в котором были все необходимые пакеты, но в итоге он установил 200 нечетных пакетов. Puppet, с другой стороны, имеет один оборот (и пару зависимостей).

лапша
источник