Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Capistrano在使用SSHKit::Runner::ExecuteError的部署:安装过程中中止:_Ruby_Ruby On Rails 3_Deployment_Digital Ocean_Capistrano3 - Fatal编程技术网

Ruby Capistrano在使用SSHKit::Runner::ExecuteError的部署:安装过程中中止:

Ruby Capistrano在使用SSHKit::Runner::ExecuteError的部署:安装过程中中止:,ruby,ruby-on-rails-3,deployment,digital-ocean,capistrano3,Ruby,Ruby On Rails 3,Deployment,Digital Ocean,Capistrano3,我正试图将我在Github上的一个项目发布到数字海洋水滴上。我使用的是《部署rails应用程序》一书中的rails服务器模板repo。我克隆了书中提到的骷髅回购。然后,我遵循了快速入门第4章和第16章(使用Chef/Berkshellf进行资源调配,使用Capistrano进行部署),并根据说明编辑了模板 配置脚本运行得很好,尽管第一次尝试时它似乎挂起了。在第二次尝试中,它没有问题完成。在检查了dropletip地址之后,NGINX服务器消息如预期的那样出现了,因此那里的情况似乎很好 因此,在设

我正试图将我在Github上的一个项目发布到数字海洋水滴上。我使用的是《部署rails应用程序》一书中的rails服务器模板repo。我克隆了书中提到的骷髅回购。然后,我遵循了快速入门第4章和第16章(使用Chef/Berkshellf进行资源调配,使用Capistrano进行部署),并根据说明编辑了模板

配置脚本运行得很好,尽管第一次尝试时它似乎挂起了。在第二次尝试中,它没有问题完成。在检查了dropletip地址之后,NGINX服务器消息如预期的那样出现了,因此那里的情况似乎很好

因此,在设置capistrano脚本并将它们指向我的repo之后,我尝试运行capistrano'deploy:setup\u config'命令,它在Unicorn安装过程之后(或者可能在过程中)立即爆炸。请参阅下面的错误消息(仅是出现错误消息前后的部分)

我希望得到一些关于我可以尝试的事情的提示,或者如果从错误消息中可以清楚地看出问题可能是什么?我运行了带有一些额外调试和跟踪选项的“deploy:setup\u config”,但我仍然不知道是什么导致capistrano中止。我花了几个小时搜索和阅读了来自谷歌搜索的类似消息,但没有发现任何问题尝试成功了。对我的noob部署大脑来说,这似乎是一个SSH问题。因此,我甚至确保我已经设置了SSH代理转发,现在看来我已经设置了SSH代理转发(我最初没有),但即使在修复错误后,错误仍会继续停止操作

==下面的错误消息:

DEBUG [b9208e5b] Command: ( RBENV_ROOT=/usr/local/rbenv RBENV_VERSION=2.1.2 /usr/bin/env chmod +x /home/deploy/apps/shared/config/unicorn_init.sh )
D, [2015-03-19T03:04:56.581563 #10311] DEBUG -- tcpsocket[3fcae8adb5e0]: queueing packet nr 77 type 90 len 44
D, [2015-03-19T03:04:56.581839 #10311] DEBUG -- tcpsocket[3fcae8adb5e0]: sent 120 bytes
D, [2015-03-19T03:04:56.600361 #10311] DEBUG -- tcpsocket[3fcae8adb5e0]: read 52 bytes
D, [2015-03-19T03:04:56.600635 #10311] DEBUG -- tcpsocket[3fcae8adb5e0]: received packet nr 91 type 91 len 28
I, [2015-03-19T03:04:56.600775 #10311] INFO -- net.ssh.connection.session[3fcae950b3bc]: channel_open_confirmation: 10 0 0 32768
I, [2015-03-19T03:04:56.601065 #10311] INFO -- net.ssh.connection.channel[3fcae98a9d84]: sending channel request "env"
D, [2015-03-19T03:04:56.601241 #10311] DEBUG -- tcpsocket[3fcae8adb5e0]: queueing packet nr 78 type 98 len 44
I, [2015-03-19T03:04:56.601552 #10311] INFO -- net.ssh.connection.channel[3fcae98a9d84]: sending channel request "exec"
D, [2015-03-19T03:04:56.601712 #10311] DEBUG -- tcpsocket[3fcae8adb5e0]: queueing packet nr 79 type 98 len 156
D, [2015-03-19T03:04:56.601891 #10311] DEBUG -- tcpsocket[3fcae8adb5e0]: sent 248 bytes
D, [2015-03-19T03:04:56.619705 #10311] DEBUG -- tcpsocket[3fcae8adb5e0]: read 88 bytes
D, [2015-03-19T03:04:56.620077 #10311] DEBUG -- tcpsocket[3fcae8adb5e0]: received packet nr 92 type 93 len 28
I, [2015-03-19T03:04:56.620336 #10311] INFO -- net.ssh.connection.session[3fcae950b3bc]: channel_window_adjust: 10 +2097152
D, [2015-03-19T03:04:56.620778 #10311] DEBUG -- tcpsocket[3fcae8adb5e0]: received packet nr 93 type 99 len 12
I, [2015-03-19T03:04:56.621003 #10311] INFO -- net.ssh.connection.session[3fcae950b3bc]: channel_success: 10
D, [2015-03-19T03:04:56.623588 #10311] DEBUG -- tcpsocket[3fcae8adb5e0]: read 140 bytes
D, [2015-03-19T03:04:56.624133 #10311] DEBUG -- tcpsocket[3fcae8adb5e0]: received packet nr 94 type 98 len 44
I, [2015-03-19T03:04:56.624377 #10311] INFO -- net.ssh.connection.session[3fcae950b3bc]: channel_request: 10 exit-status false
D, [2015-03-19T03:04:56.624593 #10311] DEBUG -- tcpsocket[3fcae8adb5e0]: received packet nr 95 type 96 len 12
I, [2015-03-19T03:04:56.624688 #10311] INFO -- net.ssh.connection.session[3fcae950b3bc]: channel_eof: 10
D, [2015-03-19T03:04:56.624819 #10311] DEBUG -- tcpsocket[3fcae8adb5e0]: received packet nr 96 type 97 len 12
I, [2015-03-19T03:04:56.624890 #10311] INFO -- net.ssh.connection.session[3fcae950b3bc]: channel_close: 10
D, [2015-03-19T03:04:56.625106 #10311] DEBUG -- tcpsocket[3fcae8adb5e0]: queueing packet nr 80 type 97 len 28
INFO [b9208e5b] Finished in 0.044 seconds with exit status 0 (successful).
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as deploy@104.131.156.16: no implicit conversion of nil into String
/Users/jose8a/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.7.1/lib/sshkit/runners/parallel.rb:16:in rescue in block (2 levels) in execute' /Users/jose8a/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.7.1/lib/sshkit/runners/parallel.rb:12:inblock (2 levels) in execute'
TypeError: no implicit conversion of nil into String
/Users/jose8a/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/capistrano-cookbook-0.2.1/lib/capistrano/cookbook/helpers/substitute_strings.rb:9:in gsub!' /Users/jose8a/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/capistrano-cookbook-0.2.1/lib/capistrano/cookbook/helpers/substitute_strings.rb:9:inblock in sub_strings'
/Users/jose8a/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/capistrano-cookbook-0.2.1/lib/capistrano/cookbook/helpers/substitute_strings.rb:8:in each' /Users/jose8a/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/capistrano-cookbook-0.2.1/lib/capistrano/cookbook/helpers/substitute_strings.rb:8:insub_strings'
/Users/jose8a/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/capistrano-cookbook-0.2.1/lib/capistrano/cookbook/tasks/setup_config.cap:29:in block (4 levels) in <top (required)>' /Users/jose8a/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/capistrano-cookbook-0.2.1/lib/capistrano/cookbook/tasks/setup_config.cap:28:ineach'
/Users/jose8a/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/capistrano-cookbook-0.2.1/lib/capistrano/cookbook/tasks/setup_config.cap:28:in block (3 levels) in <top (required)>' /Users/jose8a/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.7.1/lib/sshkit/backends/netssh.rb:54:ininstance_exec'
/Users/jose8a/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.7.1/lib/sshkit/backends/netssh.rb:54:in run' /Users/jose8a/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.7.1/lib/sshkit/runners/parallel.rb:13:inblock (2 levels) in execute'
Tasks: TOP => deploy:setup_config
production.rb(注意:我在这里屏蔽了实际的IP地址):


尝试在没有rbenv的情况下运行安装程序(将其从Capfile和deploy.rb中删除)

我也遇到过类似的情况,但我的问题是环境变量(当我开始使用全新的笔记本电脑时)。 我有以下几点

set :ssh_options,
   forward_agent: true,
   auth_methods: ['publickey'],
   keys: [ENV['RSA_PUB']]

在这台新笔记本电脑中,我从未设置过RSA_PUB的
value

如果我拿出rbenv,那么我应该如何安装ruby?我要到周日或周一才能尝试。你可以使用rvm。在Capfile中添加require'capistrano/rvm',然后在deploy/stage.rb中,即set:rvm_ruby_版本,'2.1。2@your_gemset'注意,必须安装rvm在服务器上。今天下午我将尝试您的建议。但是,我很好奇,是什么让您认为rbenv是问题所在。我想了解一下,以防将来看到此问题。从错误消息中,它向我建议ssh可能是问题所在。我想了解一下,以防再次遇到此问题。我认为Capistrano无法解决此问题ind ruby,您在rbenv配置中指定的。在服务器上运行此命令
ls~/.rbenv/versions
,并尝试设置响应命令输出的rbenv ruby。例如,命令输出为2.1.2-p0,然后
set:rbenv_ruby,'2.1.2-p0'
,谢谢您的建议。事实证明,问题实际上是production.rb中的变量我所谓的“完整路径名”实际上应该是“完整应用名”。
set :stage, :production
set :branch, "master"

# This is used in the Nginx VirtualHost to specify which domains
# the app should appear on. If you don't yet have DNS setup, you'll 
# need to create entries in your local Hosts file for testing.
set :server_name, 'MY.IP.ADDR.ESS'

# used in case we're deploying multiple versions of the same app
# side by side. Also provides quick sanity checks when looking at
# filepaths
set :full_path_name, "#{fetch(:application)}_#{fetch(:stage)}"

server 'MY.IP.ADDR.ESS', user: 'deploy', roles: %w{web app db}, primary: true

set :deploy_to, "/home/#{fetch(:deploy_user)}/apps/#{fetch(:full_app_name)}"

# don't try to infer something as important as environment from stage name
set :rails_env, :production

# number of unicorn workers, this will be reflected in 
# the unicorn.rb and the monit configs
set :unicorn_worker_count, 5

# wether we're using ssl or not, used for building nginx
# config file
set :enable_ssl, false
set :ssh_options,
   forward_agent: true,
   auth_methods: ['publickey'],
   keys: [ENV['RSA_PUB']]