Я новичок в Puppet, и, хотя я уже много лет использую системы * nix, я никогда не работал системным администратором или оперативным сотрудником.
В настоящее время я пишу манифесты Puppet для размещения набора (PHP / MySQL / MongoDB, код в git) веб-приложений. Очевидно, что Puppet должен иметь некоторые знания о реальных приложениях, потому что я настрою виртуальный хост для каждого из них, но я не уверен, должен ли Puppet управлять такими вещами, как развертывание кода и создание базы данных.
Является ли Puppet подходящим инструментом для развертывания приложений? Если нет, можете ли вы порекомендовать более подходящий инструмент?
deployment
puppet
michaeltwofish
источник
источник
Ответы:
Я бы посмотрел в Capistrano или Fabric для развертывания ..
Вы сможете лучше контролировать процесс развертывания с помощью этих двух инструментов.
источник
Puppet используется для развертываний во многих крупных организациях, но не всегда идеально. Многое из этого зависит от вашей методологии развертывания. Вы развертываете на многих машинах одновременно? Вы делаете скользящие развертывания?
Некоторые организации используют Puppet, собирая пакеты своих развертываний, а затем применяя политику Puppet для обеспечения соответствия нужной версии этого пакета. Поскольку Puppet включает в себя концепцию сред, вы можете использовать среды для поэтапного развертывания (например, dev, test, prod).
Другие организации используют puppet для организации развертывания путем запуска rsync, git checkout или некоторых рекурсивных файловых копий с использованием puppet (хотя это довольно медленно).
Есть и другие довольно хорошие инструменты, доступные для развертывания. Я использовал Whiskey Disk в прошлом (простой инструмент ruby), и он мне очень понравился.
(Отказ от ответственности, я работаю в Puppet Labs)
источник
Если вы хотите собрать пакет из своего приложения, вы можете изучить FPM . Код есть на GitHub .
источник
По моему мнению, Puppet не является подходящим инструментом для развертывания приложений.
Я использую Jenkins для сборки и развертывания нашего кода для тестирования и постановки.
Изначально Jenkins - это сервер непрерывной интеграции, но он действительно гибкий и модульный. Для Jenkins существует множество плагинов, которые могут помочь вам в развертывании ваших приложений:
Для нашего приложения я настроил Jenkins с помощью Publish over SSH, который копирует успешно созданный WAR-файл на конечный сервер и затем выполняет сценарий, который выполняет резервное копирование и развертывание. Надеюсь это поможет!
источник
Средство удаленного выполнения + управления конфигурацией подойдет для развертывания приложений. Соль является хорошим примером этого .
источник
Puppet на самом деле не предназначен для развертывания, потому что при большом количестве файлов вы можете столкнуться с проблемами. Вы можете заглянуть в Capistrano для развертывания приложений.
http://rubyforge.org/projects/capistrano/
источник