问题标签 [sshkit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3394 浏览

nginx - 在 capistrano 3 任务中声明和使用 ruby​​ 函数

我在这里描述了同样的问题:

如何在另一个 Capistrano 的任务中调用 Capistrano 的任务?

但是回滚到 Capistrano v3.0.1 和 sshkit 1.0 的解决方案对我不起作用。

使用本教程,我在 lib/capistrano/tasks 中声明了自定义任务,这些任务使用存储在 lib/capistrano/ 中的 .rb 文件中标定的函数

帽文件:

部署.rb

配置/暂存.rb

lib/capistrano/tasks/setup_config.cap

lib/capistrano/template.rb

宝石文件

Gemfile.lock

当我执行 bundle exec cap staging deploy:setup_config

我得到这个输出:

看来使用 capistrano v3.0.1 和 sshkit v1.0 并不能解决我的问题。deploy:setup_config 任务正在尝试调用 lib/capistrano/template.rb 中定义的函数 smart_template,输出指示找不到该函数。我不知道如何让它正常工作。欢迎任何有关解决该问题的建议。此外,如果存在为 nginx 和 unicorn 创建配置和可执行文件的更好方法,我很想听听。

编辑

在怀疑来自 ruby​​gems 的 sshkit gem 仍然包含错误后,我添加了

到我的 Capfile 并重建我的本地 gemset。然而,这并没有解决问题,并指示我寻找其他地方。从那里我能够诊断出这个问题与我的 Capfile 中这些行定义的 ruby​​ 文件的导入有关:

我将这些行注释掉并替换为:

我的 deploy:setup_config 任务现在可以正确调用这些函数。我导出了工作的 gem 集,并使用 ruby​​ gems 中的 sshkit 创建了一个新的 gemset。使用上面列出的 require_relative 行,来自 ruby​​gems 的 sshkit gem 运行良好。所以问题从来不在于 sshkit 中的错误,无论我使用的是哪个源(git 或 ruby​​gems),而是导入包含我的 cap 任务调用的函数的 ruby​​ 文件。

0 投票
1 回答
4059 浏览

ruby-on-rails - Rails 4,Capistrano 3 在 bundle exec rake assets 期间失败:预编译并返回 rake stdout:Nothing

在 rake assets:precompile 期间使用 Capistrano 部署失败:

提示响应此错误:

这是我的debloy.rb

您可以在此 Gist 上找到有关此问题的更多详细信息: https ://gist.github.com/richardsondx/10092890 我注意到,即使我在 production.rb 中提到了环境,rake 任务中也没有提到它。用 RAILS_ENV=production 覆盖命令的前缀可能会有所帮助

我试图用以下方法覆盖任务:

但它并没有覆盖它。

0 投票
1 回答
1026 浏览

ruby-on-rails - Capistrano : NoMethodError: undefined method `recv' for #

Capistrano (> 3) 中的这个错误阻止我部署我的 Rails 应用程序。我的 Capistrano 配置在另一个环境中运行良好。

我正在使用代理连接到我的远程服务器(在两个环境中)。SSH 连接工作正常。

有没有人遇到过这个问题?

解决方法

我对该错误的薄弱理解是,在 ssh 协商之后,有时返回到 net-ssh 的套接字是一个意外的文件描述符。我已经添加了:

到我的 Gemfile 以便 ssh 连接只建立一次。

相关配置为:

这种方式工作得很好。我等不及合并拉取请求了。

0 投票
1 回答
1168 浏览

ruby-on-rails - Cap aborted SSHKit 错误

我正在尝试使用 capistrano 部署我的 rails 应用程序,并且在命令后出现以下错误:

输出:

为了清楚起见,我用“appname”替换了我的真实服务器名称以保密;)感谢您的任何建议!我希望这是一个简单的修复,我也会继续调查错误。

0 投票
0 回答
332 浏览

capistrano3 - 为什么 Capistrano 3 在使用“on roles(:web)”时不过滤?

我不确定这是否只是我对 Capistrano 和 Rake 的误解,但我正在浏览 Capistrano 3 设置页面 (www.capistranorb.com),其中一些步骤提到了如何编写服务器以及如何运行:check_write_permissions的基本任务。

我的问题是当我尝试使用以下服务器设置在我的服务器上运行示例代码时,我得到了意想不到的结果。

我的config/deploy/production.rb文件设置如下:

然后我在lib/capistrano/tasks/ access_check.rake 中创建了 :check_write_permissions 任务。我对“on roles(:all)”做了一个小修改,所以改为“on roles(:web)”。

当我运行任务时:

或者

...我希望它只会对具有 :web 角色的服务器运行 :check_write_permissions 代码。相反,我的输出显示 :db 服务器也与 :check_write_permissions 任务一起运行。这会引发异常,因为我在数据库服务器上没有部署目录。

当我在执行的命令中使用 ROLE 过滤器运行任务时,例如:

这按预期工作。我看到只有 Web 服务器让任务针对它运行。

这背后的原因是什么?我已经深入研究了 Capistrano 3.2.1 代码,但我无法弄清楚。也许这只是我对角色(...)如何工作的误解,但我无法弄清楚。

0 投票
2 回答
1149 浏览

capistrano3 - 当执行的命令不返回任何内容时,sshkit 捕获是否可能不会出错

我想要实现的是一个 capistrano3 任务,它在所有服务器上执行一个日志文件 grep - 这将节省大量时间,因为我们有很多服务器,因此手动或什至编写脚本但顺序需要很长时间。

我有一个粗略的边缘任务,它实际上可以工作,除非其中一个服务器没有为 grep 返回任何内容。在这种情况下,整个命令都会失败。

因此想知道是否有办法设置capture接受空退货。

0 投票
1 回答
475 浏览

ruby - capistrano 3 pury ruby​​ 错误 - 不知道如何构建任务 ':check'

我在 ruby​​ 脚本文档中关注capistrano 。

我的文件:

Capistrano 版本:

红宝石版本:

红宝石脚本:

执行:

虽然我不确定,但似乎缺少命名空间--应该在Don't know how to build task ':check'哪里。':check''deploy:check'

更新:

似乎scm必须设置变量。

添加set :scm, "deploy"让它继续,但随后失败

你能帮我理解错误是什么以及如何修复它吗?

谢谢。

0 投票
1 回答
169 浏览

rake - 如何获得最终要由 sshkit 执行的命令

我想创建一个能够执行任务并将所有命令包装在另一个命令中的 gem。

例如,capistrano3-unicorn gem unicorn:start任务将在服务器上bundle exec unicorn -c unicorn.rb -E production执行类似cd /home/deploy/application/myapp/current && bundle exec unicorn -c unicorn.rb -E production

我希望能够创建一个接受该unicorn:start任务并将其包装在另一个任务中的 rake 任务。

例如,如果我想为应用程序创建一个 upstart 配置文件,我可以将此命令添加到 upstart.conf 模板并运行service my-unicorn-app start

那将是我试图追求的一个用例。

在 SSHKit 格式化程序中,使用具有我正在寻找的命令 arg 调用 write 命令。但我在 capistrano 任务级别需要这个。

谢谢

0 投票
1 回答
884 浏览

npm - Capistrano 3 无用的错误信息

当通过 capistrano 任务运行时,我试图弄清楚这个命令有什么问题。如果我直接在服务器上运行它运行良好:

没有多大帮助的错误

有没有办法为通过 capistrano 运行的远程任务打开有用的错误消息或某些东西?

0 投票
1 回答
286 浏览

capistrano3 - Capistrano 3 / SSHKit.config.umask 不工作

我正在尝试运行SSHKit.config.umask配置的测试命令:

部署.rb:

部署.rake

我希望hello.txt配置没有权限,但我看到:

-rw-rw-r-- 1 deploy deploy 0 Apr 9 15:40 hello.txt

我究竟做错了什么?