Развертывание с Capistrano - PullRequest
       5

Развертывание с Capistrano

0 голосов
/ 20 августа 2011

Я использую Ruby on Rails 3.0.9 и пытаюсь настроить гем Capistrano (следуя книге Agile Web Development с Rails - четвертое издание). Я устанавливаю git и все связанные каталоги \ файлы на удаленной машине (это работает) и все "основные" вещи, связанные с Capistrano. Теперь, если я запускаю со своего локального компьютера следующие команды, они работают как положено:

cap deploy:setup
# ...

cap deploy:check
# ...
# You appear to have all necessary dependencies installed

В настоящее время на сервере в моем каталоге проектов находятся следующие каталоги (созданные Capistrano):

<my_project_dir>/releases
<my_project_dir>/shared

Ничего больше .

Что мне теперь делать? Например, нужно ли мне загружать все файлы приложения с локального компьютера на удаленный компьютер?

P.S .: Я также настроил свой сервер Apache2, чтобы он указывал на каталог <my_project_dir>/current/public, но Capistrano не создал эту папку.


ОБНОВЛЕНИЕ для @ Alex

Если я запускаю команду cap deploy, я получаю следующее:

  * executing `deploy'
  * executing `deploy:update'
 ** transaction: start
  * executing `deploy:update_code'
    updating the cached checkout on all servers
    executing locally: "git ls-remote root@<SERVER_IP_ADDRESS>:/git/<my_project_name>.com.git master"
    command finished in 3086ms
  * executing "if [ -d /srv/www/<my_project_name>.com/shared/cached-copy ]; then cd /srv/www/<my_project_name>.com/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard 36ccf7b6f63041ee8dcdf4ca0a7c0b10dbc8bad1 && git clean -q -d -x -f; else git clone -q root@<SERVER_IP_ADDRESS>:/git/<my_project_name>.com.git /srv/www/<my_project_name>.com/shared/cached-copy && cd /srv/www/<my_project_name>.com/shared/cached-copy && git checkout -q -b deploy 36ccf7b6f63041ee8dcdf4ca0a7c0b10dbc8bad1; fi"
    servers: ["<SERVER_IP_ADDRESS>"]
    [<SERVER_IP_ADDRESS>] executing command
 ** [<SERVER_IP_ADDRESS> :: err] Host key verification failed.
 ** [<SERVER_IP_ADDRESS> :: err] fatal: The remote end hung up unexpectedly
    command finished in 396ms
*** [deploy:update_code] rolling back
  * executing "rm -rf /srv/www/<my_project_name>.com/releases/20110820175634; true"
    servers: ["<SERVER_IP_ADDRESS>"]
    [<SERVER_IP_ADDRESS>] executing command
    command finished in 353ms
failed: "sh -c 'if [ -d /srv/www/<my_project_name>.com/shared/cached-copy ]; then cd /srv/www/<my_project_name>.com/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard 36ccf7b6f63041ee8dcdf4ca0a7c0b10dbc8bad1 && git clean -q -d -x -f; else git clone -q root@<SERVER_IP_ADDRESS>:/git/<my_project_name>.com.git /srv/www/<my_project_name>.com/shared/cached-copy && cd /srv/www/<my_project_name>.com/shared/cached-copy && git checkout -q -b deploy 36ccf7b6f63041ee8dcdf4ca0a7c0b10dbc8bad1; fi'" on <SERVER_IP_ADDRESS>

Примечание : failed: ... в последней строке. В чем проблема?

Ответы [ 4 ]

3 голосов
/ 20 августа 2011

Поскольку ваше git-репо находится на самом сервере развертывания, Capistrano испытывает те же трудности. Просто установите переменную deploy_via на :copy в вашем deploy.rb, чтобы исправить:

set deploy_via :copy
1 голос
/ 27 октября 2012
[<SERVER_IP_ADDRESS>] executing command

** [:: err] Ошибка проверки ключа хоста. ** [:: err] фатально: удаленный конец неожиданно зависает

В моем случае это было вызвано настройкой моего репозитория git с URL-адресом ssh.

Я смог решить эту проблему, выполнив вход на хост через ssh, затем выполнив 'ssh', а затем приняв ключ хоста.

0 голосов
/ 20 августа 2011

Вы должны выполнить cap deploy:cold в первый раз, а затем использовать cap deploy или cap deploy:migrations для развертывания приложения.

Эти команды могут копировать код на рабочий сервер с локального компьютера или даже из удаленного репозитория git.

Посмотрите на параметры конфигурации здесь: http://help.github.com/deploy-with-capistrano/

Приведенные выше команды также создадут для вас символическую ссылку <my_project_dir>/current

Данная ошибка указывает на то, что ваш сервер не может клонировать репозиторий git из github. Сгенерируйте пару ключей SSK на сервере с помощью пользователя приложения и загрузите открытый ключ в ключи развертывания github.

0 голосов
/ 20 августа 2011

Вы можете сделать пару вещей:

  • cap deploy: настройка Это настроит любые директории, символические ссылки и т. Д., Которые нужны Capistrano
  • cap deploy: проверить Это позволит убедиться, что все настроено для шапки
  • крышка развернута: холодная Это развертывает и запускает все настроенные демоны (например, mongrel, apache, что вы используете)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...