Альтернативы Chef / Fabric / Puppet для простой разработки LAMP? - PullRequest
10 голосов
/ 28 июля 2011

Я наконец-то взялся за правильное изучение процесса разработки программного обеспечения, чтобы повысить свои навыки и развить свой бизнес. Это означает использование контроля версий (git), настройку среды разработки-разработки и поддержание этих сред в максимально возможной конфигурации.

Я действительно догнал последний шаг, выбрав решение для автоматизации и синхронизации настроек моего сервера. Я изучал Chef, Puppet & Fabric, но для моих целей они кажутся слишком сложными. Я:

  • Разработка небольшого веб-приложения на одном сервере
  • Будет развиваться в среде LAMP со средними навыками PHP и UNIX
  • Не будет сильно изменять переменные окружения (прежде всего php.ini, apache config)

Буду признателен за любые рекомендации по решениям, которые будет легче реализовать, чем освоение сложной среды Chef или изучение Python для использования Fabric. Я могу сделать это при необходимости, но надеюсь, что есть более простое / элегантное решение, учитывая мои очень упрощенные потребности.

Ответы [ 4 ]

8 голосов
/ 28 июля 2011

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

По сути, он настраивает git-репо (локальный и удаленный доступ),установите apache2 и PHP5 (и некоторые расширения php), настройте aphost vhost, php.ini, установите фреймворки и загрузочный проект, если это необходимо (для нас это symfony).

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

Chef & Puppet работает хорошо, но это немного излишне, если у вас одновременно не запущено много проектов.

Редактировать:

Если вы хотите запускать сценарий после фиксации / отправки (например, развертывание на промежуточный / подготовительный сервер, запуск вашей сборки непрерывной интеграции и т. Д.)есть способ сделать это с помощью git call post-hook, см. Развертывание проекта с помощью Git push

5 голосов
/ 12 августа 2013

Я бы настоятельно рекомендовал для этой цели взглянуть на Ansible .

Это полное решение, которое означает, что оно может обрабатывать управление конфигурацией, развертывание и т. Д.Тем не менее, на моем опыте гораздо легче учиться, чем Chef или Puppet, так как вы можете начать с выполнения основных команд оболочки и двигаться дальше.

Нет необходимости изучать новый язык;вся конфигурация и спецификация, которую вы будете выполнять, сделаны в YAML, который представляет собой просто структурированный текст.

В целом, Ansible даст вам большую часть того, что будет делать Chef или Puppet на вашем уровне, и, надеюсь, вы найдете это более простым.чтобы начать.

4 голосов
/ 04 октября 2011

Если вы серьезно относитесь к профессиональной веб-разработке, я настоятельно рекомендую еще раз взглянуть на Chef. Это работает очень хорошо для нас (я и мои коллеги). Я знаю, что это может показаться излишним, но, на мой взгляд, преимущества намного перевешивают кривую обучения. Требуется гораздо больше усилий для поддержки различных серверных сред (и локальных сред разработки среди коллег). Кроме того, Chef упрощает установку Apache, PHP и MySQL, поскольку уже есть кулинарные книги / рецепты.

Кроме того, обязательно проверьте Бродяга . Он работает с Chef и VirtualBox , что значительно упрощает настройку локальной среды разработки.

Кроме того, если вы работаете над проектом Zend Framework, вас может заинтересовать проект *1000* Zend Framework Boilerplate , представляющий собой универсальную среду разработки LAMP с использованием Vagrant.

1 голос
/ 22 июня 2012

Для Simple LAMP Development вам вообще ничего не нужно.Дело не в том, что простая разработка не может быть автоматизирована, а потому, что для простой разработки обычно достаточно (проще и быстрее) написать несколько сценариев самостоятельно (даже на Python).

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

Для вашего отдельного сервера я бы сказал README + Mercurial (Git, если вам нужноGitHub) плюс несколько символических ссылок должно быть более чем достаточно для управления конфигами, источниками и настройкой сервера.Для автоматизации и развертывания просто напишите скрипт, который загружает ваш сайт на FTP / SSH, перезагружает сервер, выполняет тесты, что угодно - по вашему усмотрению.Это Simple Deployment for Simple Development.Если вы предпочитаете не писать для этого PHP и не знаете shell - то Fabric сэкономит вам время.

Как только ваши скрипты будут готовы, вы уже знаете свои проблемы, вы можете изучить Chef / Puppetв фоновом режиме, чтобы увидеть, стоит ли усложнять вещи для вашей среды.

Если вы решите попробовать Chef - не начинайте с Chef Solo - это ядовитая закуска для начинающих - используйте Hosted Chef + Client - этобесплатно для вашей настройки.Ничего не могу сказать о Puppet - я выбрал Chef, потому что моя мама сказала, что мне нужно уметь готовить.

...