Назад | Перейти на главную страницу

Развертывание приложения с помощью Puppet

Я новичок в Puppet, и хотя я использую системы * nix в течение многих лет, я никогда не работал системным администратором или оператором.

В настоящее время я пишу манифесты Puppet для размещения набора веб-приложений (PHP / MySQL / MongoDB, код в git). Очевидно, что Puppet должен обладать некоторыми знаниями о реальных приложениях, потому что я настрою виртуальный хост для каждого из них, но я не уверен, должен ли Puppet управлять такими вещами, как развертывание кода и создание базы данных.

Подходит ли Puppet для развертывания приложений? Если нет, можете ли вы порекомендовать более подходящий инструмент?

Я бы посмотрел либо Capistrano или Ткань для развертываний ..

Вы будете лучше контролировать процесс развертывания с помощью этих двух инструментов.

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

Некоторые организации используют Puppet, создавая пакеты своих развертываний, а затем заставляя марионетку применять политику принудительного применения для правильной версии этого пакета. Поскольку в puppet включена концепция сред, вы можете использовать среды для поэтапного развертывания (например, dev, test, prod).

В других организациях марионетка используется для управления развертыванием путем запуска rsync, git checkout или некоторых рекурсивных копий файлов с помощью марионетки (хотя это довольно медленно).

Есть и другие довольно хорошие инструменты для развертывания. Раньше я использовал Whiskey Disk (простой инструмент Ruby), и он мне очень понравился.

(Отказ от ответственности, я работаю в Puppet Labs)

Если вы хотите создать пакет из своего приложения, вы можете изучить FPM. Код включен GitHub.

На мой взгляд, Puppet не подходит для развертывания приложений.

я использую Дженкинс для создания и развертывания нашего кода для тестирования и постановки.

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

Для нашего приложения я настроил Jenkins с Публикация через SSH который копирует успешно созданный WAR-файл на целевой сервер, а затем выполняет сценарий, который выполняет резервное копирование и развертывание. Надеюсь это поможет!

Инструмент удаленного выполнения + управления конфигурацией был бы хорош для развертывания приложений. Соль - хороший тому пример..

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

http://rubyforge.org/projects/capistrano/