为什么Huginn代理商不会对Webfaction采取行动?

时间:2015-02-04 17:15:35

标签: ruby-on-rails ruby web-deployment webfaction

我可以整理VPS或部署到PaaS,但我决定让Huginn在我的Webfaction帐户上工作,因为我很确定这是可能的,我只是不这样做获得rails部署。

经过数小时的黑客攻击,我最终得到了一个正在运行的应用whose Agents do nothing。我无法运行foreman start,这是一个应该解决问题的神奇命令,所以我不确定还能做什么。

Background jobs that never get executed.

Choosing 'Run event propagation' confirms a queue of 0 events on 0 agents. 'Working' is always 'no'.]

我是怎么来到这里的

我已经习惯了PHP,这些部署对我来说很陌生,所以我确定椅子和键盘之间存在问题......

  1. 使用Rails 4.1.8(nginx 1.6.2 / Passenger 4.0.53 / Ruby 2.1.2)创建了一个名为huginn的新Webfaction应用程序。
  2. huginn克隆到Webfaction初始化的hello_world示例应用旁边的自己的文件夹中。 (~/webapps/huginn/huginn/
  3. 编辑~/webapps/nginx/conf/nginx.conf(来自Webfaction的init脚本)指向我克隆的huginn文件夹,而不是hello_world。已将GEM_HOME更改为/home/foo/webapps/huginn/huginn/gems而非/home/foo/webapps/huginn/gems,将root更改为/home/foo/webapps/huginn/huginn/public,将rails_env更改为production
  4. 编辑~/webapps/huginn/bin/start以调整路径(见下文)。
  5. 正确复制并配置了Huginn的.env,指向具有有效凭据的全新MySQL数据库。添加了随机生成的APP_SECRET_TOKEN,设置了主机名和电子邮件配置。
  6. 使用Webfaction's instructions向PATH添加了应用邮箱,路径和宝石。
  7. ~/webapps/huginn/huginn开始,gem2.1 install bundleruby2.1 bin/bundleruby2.1 bin/bundle exec rake db:migrateruby2.1 bin/bundle exec rake db:seed,一切顺利;安装到huginn目录,数据库填充等的依赖项
  8. ruby2.1 bin/bundle exec foreman start并失败:
  9.   

    16:50:03 web.1 |从pid 7115开始      16:50:03就业1 |从pid 7116开始      16:50:06就业1 | /home/foo/webapps/huginn/huginn/gems/gems/spring-1.1.3/lib/spring/server.rb:22:in`initialize':权限被拒绝@ rb_sysopen - /tmp/spring/e89e6bd5b6863aeed0fbb5c861b1fc2d.pid(错误号:: EACCES)

    1. 返回并运行~/webapps/huginn/bin/stop~/webapps/huginn/bin/start,该应用程序奇迹般地开始在我的浏览器中工作。除了代理商,它们没有按计划进行任何操作或尝试手动运行它们。
    2. 我怀疑在环境变量和ruby版本方面我缺少一些东西。可以使用各种ruby版本,但ruby --version输出ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]。即使我发现有不同版本的符号链接,因此ruby2.1 --version会让我ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]。我的猜测是该应用程序使用的是Ruby 1.8.7,我尝试使用install rvm to select a different ruby version - 我没有通过rvm install X.X.X,因为我不是sudoer而libyaml-devel无法安装。

      我很高兴得知我可以从已部署的应用程序目录运行ruby2.1 bin/rails s --port=22766 --environment=production并让应用程序再次在浏览器中运行 - 但问题与非响应代理完全相同。

      看起来我真的很亲密,但是我错过了一些让Huginn的经纪人瘫痪的东西。 我缺少什么?


      nginx.conf

      env               GEM_HOME=/home/foo/webapps/huginn/huginn/gems;
      worker_processes  1;
      
      events {
          worker_connections  1024;
      }
      
      http {
          access_log  /home/foo/logs/user/access_huginn.log  combined;
          error_log   /home/foo/logs/user/error_huginn.log   crit;
      
          include         mime.types;
          passenger_root  /home/foo/webapps/huginn/gems/gems/passenger-4.0.53;
          passenger_ruby  /home/foo/webapps/huginn/bin/ruby;
          sendfile        on;
      
          passenger_max_instances_per_app  1;
          rails_spawn_method               conservative;
          passenger_max_pool_size 2;
      
          server {
              listen             22766;
              passenger_enabled  on;
              root               /home/foo/webapps/huginn/huginn/public;
              server_name        localhost;
              rails_env          production;
          }
      }
      

      〜/ web应用/ huginn /斌/开始

      #!/bin/bash
      
      PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/foo/bin RUBYLIB=/home/foo/webapps/huginn/huginn/lib:$RUBYLIB TMPDIR=/home/foo/webapps/huginn/tmp PASSENGER_TMPDIR=/home/foo/webapps/huginn/tmp GEM_HOME=/home/foo/webapps/huginn/huginn/gems /home/foo/webapps/huginn/nginx/sbin/nginx -p /home/foo/webapps/huginn/nginx/
      

1 个答案:

答案 0 :(得分:1)

感谢John在Webfaction的帮助,它归结为设置一个可以用我的帐户写入的自定义临时目录......

mkdir -p $HOME/tmp
export TEMP=$HOME/tmp

果然,跑步ruby2.1 bin/bundle exec foreman start工作得很好,特工们终于活了起来。

然后我立刻就达到了我的512MB内存限制,所以它还有其他问题。