0

我正在尝试让 Capistrano 部署脚本工作,在我的部署文件中,我有以下内容......

set :application, "example.com"
role :app, "root@12.34.56.789"
role :web, "root@12.34.56.789"
role :db,  "root@12.34.56.789", :primary => true

set :user, "root"
set :deploy_to, "/example/www/#{application}"
set :deploy_via, :remote_cache
set :use_sudo, false
set :keep_releases, 10

namespace :deploy do
  desc "Tell Passenger to restart the app."
  task :restart do
    run "touch #{current_path}/tmp/restart.txt"
  end

  desc "Symlink shared configs and folders on each release."
  task :symlink_shared do
    run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml"
    run "ln -nfs #{shared_path}/assets #{release_path}/public/assets"
  end

  desc "Sync the public/assets directory."
  task :assets do
    system "rsync -vr --exclude='.DS_Store' public/assets #{user}@#{application}:#{shared_path}/"
  end
end

after 'deploy:update_code', 'deploy:symlink_shared'

我还在部署文件中有一个 github 位置和 scm 变量。当我运行cap deploy它时,它开始正常,要求输入 github 私人仓库的用户名/密码,我输入它,没问题。然后在成功并正确提取代码之后,我得到以下...

执行“如果 [ -d /example/www/example.com/shared/cached-copy ]; 然后 cd /example/www/example.com/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard 93e3432103327f29a9e66fa2755562bfe9bc4412 && git clean -q -d -x -f; 否则 git clone -q https://github.com/example/example.git /example/www/social u。 com/shared/cached-copy && cd /example/www/example.com/shared/cached-copy && git checkout -q -b deploy 93e3432103327f29a9e66fa2755562bfe9bc4412; fi" 服务器:["12.34.56.789"] 密码:

所以它要求输入密码。我猜这是为了ssh。我输入了 root 用户的密码,但是它无法显示这个...

    [12.34.56.789] executing command
 ** [12.34.56.789 :: err] Username:

我也试过根本不输入密码,我得到以下信息......

Capistrano::ConnectionError,连接失败(Net::SSH::AuthenticationFailed: root)

问题是我输入了正确的 ssh 密码……我可以使用 putty 很好地 ssh。顺便说一句,我在本地 Windows pc 上运行 cap deploy,远程框是 linux 框。当然,我的位置不是 12.34.56.78,但你明白了。关于如何解决的任何想法?

4

2 回答 2

1

您需要使用 GitHub 的 SSH 网址,而不是 https 网址。

于 2012-09-27T11:37:17.690 回答
0

能够通过将用户更改为非 root 用户来解决此问题。

于 2012-09-27T16:26:04.623 回答