Выбор бродячего провайдера - PullRequest
28 голосов
/ 13 октября 2011

Вопрос

Может кто-нибудь объяснить, почему было бы лучше выбрать марионеточного или шеф-повара, а не поставщика оболочки?

Фон

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

В данный момент я не знаком с рубином, марионеткой или шеф-поваром, но я счастлив выучить их всех или их, если придется.Мой ранний опыт игры с марионетками и шеф-поваром заключается в том, что если у кого-то еще есть рецепт, который делает именно то, что вы хотите, он работает действительно хорошо, но делать что-то нестандартное означает откатить решение кодирования в ruby.

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

Ответы [ 3 ]

27 голосов
/ 21 октября 2011

Полное раскрытие: я сотрудник Puppet Labs. Но я выбрал Puppet как продукт более 2 лет, прежде чем присоединиться к ним.

Я бы порекомендовал вам использовать Puppet или Chef over shell, если ваши конфигурации будут a) иметь какую-либо степень сложности и b) будут меняться со временем - или вы ожидаете, что сама среда установки изменится таким образом, что может измените способ развертывания. Ваши сценарии могут быть очень хорошими, но, в конечном счете, если вы не будете следовать потрясающим методам программирования вокруг них, тестировать и проверять их и т. Д., Они в какой-то момент потерпят неудачу.

В DevOps обсуждается целый ряд грамотных, но все сводится к принципу «технического долга» - сейчас мы склонны делать вещи простым способом и, таким образом, воспринимать их как более простые, за счет увеличения сложность и сложность позже.

Одной из сильных сторон Puppet является его детерминистическая природа - написанный вами манифест должен быть программно преобразован Puppet в модель создаваемого вами сервера. Люди воспринимают это как «более сложное», но я бы сказал, что сложность уменьшается, если вы усредняете ее по кривой жизненного цикла вашей технологии. Другими словами, Puppet заставляет вас задуматься сейчас, но затем развернуть его с легкостью, вместо того, чтобы думать позже и переделывать по ходу дела. Оплата наличными сейчас, а не кредитом, с процентами, позже.

Если вы просто снимаете манифесты других людей, в какой-то момент вы столкнетесь с проблемами - хотя мы бы хотели, чтобы это было не так, работая с Puppet сегодня, это, безусловно, так, потому что они пишут их для решения общего дела, а не вашей конкретной системы. Многие манифесты общего назначения становятся полезными только тогда, когда вы лучше понимаете Puppet.

Так что вместо того, чтобы начать там, я бы пробился через превосходное руководство Learning Puppet , чтобы начать понимать основы. Кривая обучения кукол крутая, но через некоторое время она выравнивается.

Существуют и другие причины для использования других провайдеров или инструментов, но я бы с уверенностью утверждал, что вам лучше работать с Puppet или Chef, чем пытаться убедиться, что ваши сценарии оболочки выполняют именно то, что, как вы думаете, они должны делать, поскольку Пока вам нужно порождать новые среды.

10 голосов
/ 20 октября 2011

Ах, со свободой выбора приходит сложность выбора того, что подходит именно вам.

Chef Solo - Chef Solo идеально подходит, если вы только начинаете работать с шеф-поваром или сервер шеф-повара просто слишком тяжел для вашей ситуации. Соло Chef позволяет вам встраивать все ваши кулинарные книги в ваш проект, что хорошо для проектов, которые хотят отслеживать свои кулинарные книги в одном репозитории. Chef Solo работает автономно - для его работы не требуется сервер Chef или какой-либо другой сервер; он просто запускается на ВМ.

Chef Server - Chef-сервер полезен для компаний или частных лиц, которые управляют многими проектами, поскольку он позволяет обмениваться кулинарными книгами между несколькими проектами. Сами поваренные книги хранятся на сервере, и клиент загружает поваренные книги при запуске.

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

Puppet Server - Поставщик Puppet Server подключается к серверу Puppet и настраивает клиентскую виртуальную машину, используя конфигурацию узла на этом сервере.

Другие инструменты, сценарии оболочки и т. Д. - Используете ли вы что-то кроме того, что встроено в Vagrant? Поставщики - это просто подклассы Vagrant :: Provisioners :: Base, что означает, что вы можете легко создать свой собственный, если возникнет такая необходимость.

Вы также можете ознакомиться с документацией, docs.vagrantup.com / v2

4 голосов
/ 08 июля 2012

Я бы выбрал поставщика Shell, а затем позволил сценарию оболочки клонировать ваш репозиторий puppet / chef из github или bitbucket. Сценарий может настроить ключ ssh для автоматического клонирования git. Преимущества заключаются в том, что большинство облачных провайдеров поддерживают эту функцию, поэтому вы можете использовать тот же сценарий. Этот блог хорошо объясняет git, puppet и vagrant, один человек и облачный блог

...