WARN [SKIPPING] / usr / bin / env touch /srv/yenta/releases/20140411230746/tmp/restart.txt没有匹配的主机

时间:2014-04-11 23:13:20

标签: ruby-on-rails passenger capistrano3

我正在使用capistrano 3.我的rails 4.0应用程序中没有tmp / restart.txt文件。当我部署我的应用程序时,收到此错误:

WARN [SKIPPING] No Matching Host for /usr/bin/env touch /srv/yenta/releases/20140411230746/tmp/restart.txt

在部署的服务器中,应用程序没有tmp / restart.txt。我想知道我是否应该明确地创建一个任务,或者我是否缺少capistrano中的任何设置。在capistrano 2中,我创建了一个任务来显式触摸tmp / restart.txt文件。

感谢任何帮助!

3 个答案:

答案 0 :(得分:0)

您在touch文件夹中尝试releases - 您需要在current文件夹中进行此操作。

是的,没有tmp/restart.txt。我被告知你必须创建它,但我们正在使用的乘客版本(4)似乎只是重新启动应用程序?

答案 1 :(得分:0)

此错误通常意味着它无法找到任何匹配的主机来执行此任务。

你重新开始乘客的任务是什么?您为此任务指定了哪些角色?

如果您可以在这里提供重启任务代码,那将会有所帮助。

供参考,请查看此博客,了解如何设置更新当前文件夹的重启任务:http://robmclarty.com/blog/how-to-deploy-a-rails-4-app-with-git-and-capistrano

请看第4步。

答案 2 :(得分:0)

此问题源于未定义特定角色 - 代码使用:app角色而未定义该角色,这导致主机未找到问题。

deploy.rb

desc 'Restart application'
task :restart do
  on roles(:app), in: :sequence, wait: 5 do
    # Your restart mechanism here, for example:
    execute :touch, current_path.join('tmp/restart.txt')
  end
end

部署/ staging.rb

role  :web,       "qa4-yenta"
set   :deploy_to, "/srv/yenta"
set   :rails_env, "staging"
set   :user,      "yenta"
set   :use_sudo,  false
set   :branch,    "staging"
set   :deploy_via, :remote_cache

:app角色需要更改为:web,或者需要定义:app角色。