Развертывание Capifony не может "git clone" - PullRequest
4 голосов
/ 23 августа 2011

У меня проблема с развертыванием через очень свежую Capifony на Capistrano v2.8.0 - это мое первое развертывание Capistrano / Capifony.

Я успешно выполнил команду cap deploy: setup, и теперь мне нужно выполнить cap deploy: cold. Связь SSH работает хорошо, но она не может выполнить команду git clone из-за прав доступа ssh:

  * executing "git clone -q git@github.com:palmic/www.myproject.com.git /home/palmic/web/hostik.cz/palmic/releases/20110823122821 && cd /home/palmic/web/hostik.cz/palmic/releases/20110823122821 && git checkout -q -b deploy 7407672c0a59ad631ea2f1f1d71fb15c2f68ac30 && (echo 7407672c0a59ad631ea2f1f1d71fb15c2f68ac30 > /home/palmic/web/hostik.cz/palmic/releases/20110823122821/REVISION)"
    servers: ["hostik.cz"]
    [hostik.cz] executing command
 ** [hostik.cz :: err] Permission denied (publickey).
 ** fatal: The remote end hung up unexpectedly
    command finished in 3123ms
*** [deploy:update_code] rolling back
  * executing "rm -rf /home/palmic/web/hostik.cz/palmic/releases/20110823122821; true"
    servers: ["hostik.cz"]
    [hostik.cz] executing command
    command finished in 164ms

Когда я вхожу в сессию ssh и вызываю это вручную, он запрашивает ssh пароль. Когда я заполняю ту же самую парольную фразу, которая мне нравится: scm_passphrase в deploy.rb, то клонирование успешно завершено. Похоже, что Capistrano не может заполнить парольную фразу в моей настройке.

КСТАТИ. ssh_options [: forward_agent] = true / false ничего не делает, никто не знает, почему ?? (в моей ~ / .ssh / config разрешена переадресация агента:

Host *hostik.cz
  ForwardAgent yes
Host *
  ForwardAgent no

мой deploy.rb:

set :application, "app"
set :domain,      "hostname"
set :deploy_to,   "remotepath"
set :use_sudo, false

set :repository,  "git@github.com:palmic/myproject.git"
set :scm,         :git
set :user, "my remote username"
set :scm_passphrase, "my ssh passphrase on remote host"
set :branch, "git project deploy branchname"
set :scm_verbose, true

role :web,        domain                         # Your HTTP server, Apache/etc
role :app,        domain                         # This may be the same as your `Web` server
role :db,         domain, :primary => true       # This is where Rails migrations will run


set  :keep_releases,  3


ssh_options[:forward_agent] = true

Я знаю, что это не какая-то оригинальная ошибка, и я что-то упустил, кто-нибудь знает?

1 Ответ

7 голосов
/ 23 августа 2011

Вы можете добавить это в своем deploy.rb:

default_run_options[:pty] = true
...