Capistrano — это Open Source-ный инструмент для выполнения скриптов на нескольких серверах, который в основном используется для web приложений. Он позволяет автоматизировать процесс развертывания новой версии на одном или нескольких web серверах и включает поддержку таких задач, как например изменение базы данных.
Capistrano написан на Ruby и является «модулем» фреймворка Ruby on Rails.
Итак, допустим на нашем локальном компьютере находится приложение(папка с файлами). У этого приложения есть git репозиторий на гитхабе с актуальным кодом. Также у нас есть хостинг с ssh доступом, куда мы собираемся залить наши файлы. Мы не хотим постоянно возиться с ftp клиентом и решили потратить несколько часов для того, чтобы разобраться в деплойере capistrano.
Первое что мы должны сделать после установки capistrano это «capify-нуть» наше приложение. «Капификация» — это процесс конфигурации capistrano для развертывания приложения. Он достаточно прост: убедитесь что вы находитесь в корневой директории вашего проекта и введите
Эта команда создаст два файла:
Проект успешно развернутый с Capistrano будет иметь структуру похожую на приведенную ниже ( где [deploy_to] — это каталог куда мы хотим развернуть проект):
Каждый раз когда вы будете разворачивать проект в папке «releases» будет создаваться новая директория, в которую будет копироваться его последняя версия. После этого символическая ссылка «current» обновиться и будет указывать на новую директорию.
В разработке также можно использовать расширение capistrano-ext, которое позволяет делать так называемый multistage. Предположим у вас есть тестовый и рабочий сервера. Вы можете написать отдельный конфиг для каждого из них и выполнять deploy только для нужного сервера.
Создаем свои рецепты: например production.rb и staging.rb. Всё что нам нужно для конфигурации — это написать в файлconfig/deploy.rb две строки:
Теперь вы можете выполнять деплой с помощью команд «cap production deploy» и «cap staging deploy».
Хорошая статья в догонку http://wiki.agiledev.ru/doku.php?id=automation:build_package_deploy
Capistrano написан на Ruby и является «модулем» фреймворка Ruby on Rails.
Итак, допустим на нашем локальном компьютере находится приложение(папка с файлами). У этого приложения есть git репозиторий на гитхабе с актуальным кодом. Также у нас есть хостинг с ssh доступом, куда мы собираемся залить наши файлы. Мы не хотим постоянно возиться с ftp клиентом и решили потратить несколько часов для того, чтобы разобраться в деплойере capistrano.
Капификация
Первое что мы должны сделать после установки capistrano это «capify-нуть» наше приложение. «Капификация» — это процесс конфигурации capistrano для развертывания приложения. Он достаточно прост: убедитесь что вы находитесь в корневой директории вашего проекта и введите
$ cd /path/deploy/from
$ capify .
Эта команда создаст два файла:
Capfile
— главный файл который нужен capistrano. Capistrano по умолчанию ищет и исполняет «Capfile». Изначально генерируемый Capfile очень прост: все что он делает — загружает «config/deploy.rb»config/deploy.rb
— файл в котором содержатся «настройки» приложения (рецепт)Структура директорий Capistrano
Проект успешно развернутый с Capistrano будет иметь структуру похожую на приведенную ниже ( где [deploy_to] — это каталог куда мы хотим развернуть проект):
[deploy_to]
[deploy_to]/releases
[deploy_to]/releases/20080819001122
[deploy_to]/releases/...
[deploy_to]/shared
[deploy_to]/shared/log
[deploy_to]/shared/pids
[deploy_to]/shared/system
[deploy_to]/current -> [deploy_to]/releases/20100819001122
Каждый раз когда вы будете разворачивать проект в папке «releases» будет создаваться новая директория, в которую будет копироваться его последняя версия. После этого символическая ссылка «current» обновиться и будет указывать на новую директорию.
Multistage
В разработке также можно использовать расширение capistrano-ext, которое позволяет делать так называемый multistage. Предположим у вас есть тестовый и рабочий сервера. Вы можете написать отдельный конфиг для каждого из них и выполнять deploy только для нужного сервера.
Создаем свои рецепты: например production.rb и staging.rb. Всё что нам нужно для конфигурации — это написать в файл
set :stages, %w(staging production)
require 'capistrano/ext/multistage'
Теперь вы можете выполнять деплой с помощью команд «cap production deploy» и «cap staging deploy».
Хорошая статья в догонку http://wiki.agiledev.ru/doku.php?id=automation:build_package_deploy
Комментариев нет:
Отправить комментарий