Анализ конфигураций Capistrano

В этом руководстве речь пойдёт о значении конфигураций Capistrano и о выполняемых ими действиях.

Примечание: Для выполнения руководства нужно предварительно установить и настроить Ruby on Rails и Capistrano. Откройте конфигурационный файл Capistrano и следуйте дальнейшим инструкциям.

Файл deploy.rb

Сначала откройте каталог приложения Ruby on Rails на локальной машине:

cd ~/dev/MyTestProject1

Откройте файл deploy.rb:

nano config/deploy.rb

Этот файл выглядит так:

set :application, "set your application name here"
set :repository,  "set your repository location here"
# If you aren't deploying to /u/apps/#{application} on the target
# servers (which is the default), you can specify the actual location
# via the :deploy_to variable:
# set :deploy_to, "/var/www/#{application}"
# If you aren't using Subversion to manage your source code, specify
# your SCM below:
# set :scm, :subversion
role :app, "your app-server here"
role :web, "your web-server here"
role :db,  "your db-server here", :primary => true

Переменные application, username, repository

Первая переменная в файле – application. Она задаёт имя приложения и, как правило, содержит доменное имя (поскольку это соответствует протоколам, использованным для настройки виртуальных хостов).

Строка application должна выглядеть так:

set :application, "domain.com"

Теперь нужно указать имя пользователя. Это предотвратит любые проблемы с правами, которые могут возникнуть при использовании учётной записи пользователя локальной машины, а не удалённого сервера. Внесите следующую строку в файл:

set :user, "username"

Параметр repository должен содержать сведения о репозитории приложения (в данном руководстве оно условно называется MyTestProject1):

set :repository,  "svn+MyTestProject1ssh://12.34.56.789/home/username/repository/MyTestProject1"

Настройка порта SSH

Порт SSH по умолчанию не установлен. Для подключения к серверу Capistrano, как правило, использует стандартный порт SSH (22). Укажите это в настройках при помощи следующей строки:

set :port, 22

Настройка пути развёртывания

Теперь нужно задать путь развёртывания. Как правило, для этого используется папка public_html.

Примечание: В случае необходимости отредактируйте предлагаемый руководством код.

Итак, путь должен иметь следующий вид:

set :deploy_to, "/home/username/public_html/#{application}"

Имейте в виду: переменная application должна находиться в конце строки. Если значение переменной set :application будет изменено, эта строка также изменится.

Переменные app, web и db

Переменные app, web и db – это последние настройки данного этапа. Как правило, эти параметры имеют одинаковые значения (что иногда становится причиной путаницы). Однако они могут указывать и на разные точки системы.

Определите значение переменной location. Переменные app, web и db будут указывать на URL, заданный в location.

set :location, "domain2.com"
role :app, location
role :web, location
role :db,  location, :primary => true

С другой стороны, если все действия выполняются на одном сервере, можно просто использовать переменную application. В таком случае параметры будут иметь следующий вид:

role :app, application
role :web, application
role :db, application , :primary => true

В результате файл deploy.rb имеет следующий вид:

set :application, "domain.com"
set : user, "username"
set :repository,  "svn+MyTestProject1ssh://12.34.56.789/home/username/repository/MyTestProject1"
# If you aren't deploying to /u/apps/#{application} on the target
# servers (which is the default), you can specify the actual location
# via the :deploy_to variable:
# set :deploy_to, "/var/www/#{application}"
set :port, 30000
set :deploy_to, "/home/username/public_html/#{application}"
# If you aren't using Subversion to manage your source code, specify
# your SCM below:
# set :scm, :subversion
role :app, application
role :web, application
role :db, application , :primary => true

Как видите, содержимое этого файла довольно простое. Однако эти параметры позволяют значительно улучшить выполнение команд Capistrano.

Папка public_html

Войдите на сервер и откройте папку public_html:

ssh -p 22 username@123.45.67.890
cd /home/username/public_html

Если ранее команды Capistrano не были запущены, каталог будет пуст.

Запустите несколько команд Capistrano.

Команда deploy:setup

Запустите эту команду на локальной машине:

cap deploy:setup

Чтобы узнать, какое действие она выполнила, откройте каталог public_html на удалённом сервере.

ls
...
domain.com

Как видите, инструмент Capistrano подключился к серверу, извлёк параметры из файла deploy.rb и создал структуру каталогов для дальнейшего развёртывания приложения. В родительском каталоге можно увидеть папки releases и shared. Каталог shared в свою очередь содержит подкаталоги для сведений о системе, логов, pid и т.д.

Tags: ,

Добавить комментарий