【问题标题】:capistrano cannot run ssh: no such file or directorycapistrano 无法运行 ssh:没有这样的文件或目录
【发布时间】:2014-12-27 21:00:28
【问题描述】:

我是 capistrano 的新手,我正在尝试建立一个测试项目,但正如您所猜想的那样,没有太大的成功。当我运行cap deploy:update 时,我得到以下输出:

$ cap deploy
  * 2014-12-27 21:48:06 executing `deploy'
  * 2014-12-27 21:48:06 executing `deploy:update'
 ** transaction: start
  * 2014-12-27 21:48:06 executing `deploy:update_code'
    executing locally: "git ls-remote git@github.com:hstandaert/test.git production"
    command finished in 1281ms
  * executing "git clone -q -b production git@github.com:hstandaert/test.git/customers/4/b/b/stocksolutions.be/httpd.www/private/releases/20141227204807 && cd /customers/4/b/b/stocksolutions.be/httpd.www/private/releases/20141227204807 && git checkout -q -b deploy 5604624725df4d3c7dd4f88fc77cfd5d9d8ddf26 && (echo 5604624725df4d3c7dd4f88fc77cfd5d9d8ddf26 > /customers/4/b/b/stocksolutions.be/httpd.www/private/releases/20141227204807/REVISION)"
servers: ["ssh.stocksolutions.be"]
stocksolutions.be@ssh.stocksolutions.be's password:
stocksolutions.be@ssh.stocksolutions.be's password:
    [ssh.stocksolutions.be] executing command
 ** [ssh.stocksolutions.be :: out] error: cannot run ssh: No such file or directory
 ** [ssh.stocksolutions.be :: out] fatal: unable to fork
    command finished in 1611ms
*** [deploy:update_code] rolling back
  * executing "rm -rf /customers/4/b/b/stocksolutions.be/httpd.www/private/releases/20141227204807; true"
    servers: ["ssh.stocksolutions.be"]
    [ssh.stocksolutions.be] executing command
    command finished in 957ms
failed: "sh -c 'git clone -q -b production git@github.com:hstandaert/test.git /customers/4/b/b/stocksolutions.be/httpd.www/private/releases/20141227204807 && cd /customers/4/b/b/stocksolutions.be/httpd.www/private/releases/20141227204807 && git checkout -q -b deploy 5604624725df4d3c7dd4f88fc77cfd5d9d8ddf26 && (echo 5604624725df4d3c7dd4f88fc77cfd5d9d8ddf26 > /customers/4/b/b/stocksolutions.be/httpd.www/private/releases/20141227204807/REVISION)'" on ssh.stocksolutions.be

这是 deploy.rb 文件:

begin
    require 'colored'
rescue LoadError
    $stderr.puts <<-INSTALL
You need the both the capistrano-ext and colored gems to deploy this application
Install the gems like this:
    gem install colored
    INSTALL
    exit 1
end

set :application, "stocksolutions"
set :repository,  "git@github.com:hstandaert/test.git"
set :branch, "production"

set :user, 'stocksolutions.be'
set :deploy_to, "/customers/4/b/b/#{user}/httpd.www/private"
set :use_sudo, false

set :scm, :git

default_run_options[:pty] = true

server "ssh.stocksolutions.be", :app, :web

namespace :deploy do
 task :start do ; end
 task :stop do ; end
 task :restart, :roles => :app, :except => { :no_release => true } do
   run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
 end
end

谁能发现我的错误?

【问题讨论】:

    标签: deployment ssh capistrano


    【解决方案1】:

    您的日志似乎表明您的部署服务器中没有安装 ssh 客户端,或者在服务器的 PATH 中找不到该命令。

    通过更改以下内容尝试通过 https 而不是 ssh 克隆 repo 是否可行:

    之前

    set :repository,  "git@github.com:hstandaert/test.git"
    

    之后

    set :repository,  "https://github.com/hstandaert/test.git"
    

    系统会要求您提供登录凭据,以便 github 能够克隆 repo。

    【讨论】:

    • 我的主机是 one.com。不知道有没有用。
    • 你能 ssh 到你的服务器并尝试从那里运行 ssh 命令吗?
    • 给了我同样的错误:error: cannot run ssh: No such file or directory fatal: unable to fork
    • 那么,这就是问题所在。我用可能的解决方法更新了我的答案。看看它是否有效。
    猜你喜欢
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多