Анализ конфигураций 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: Capistrano, Ruby on Rails