Capistrano appserver作为没有sudo的服务

时间:2014-03-31 10:48:53

标签: ruby-on-rails ruby capistrano unicorn

有没有人有一个很好的方法来管理带有capistrano的appserver?这似乎是留给你自己设备的情况,我还没有看到它的好例子。

我看到基本上有两种思路。

1)将其作为部署用户进行守护。优点,没有系统服务等,所以没有权限问题。然而,这就好像机器重新启动一样,导致系统崩溃。

2)初始化脚本。安装init脚本并使用它来管理服务器。这将重新启动,并允许说/etc/init.d/myapp重新启动/停止/启动控制,如果你ssh进入。这是不错的,除了两个原因

  • 大多数人都是用captorano用sudo来管理它(我觉得capistrano 3不鼓励这个)
  • 我还没有看到一个与独角兽合作的好的新贵或类似剧本。

我正在尝试使用nginx +独角兽。 Nginx我完美地设定了。我已将网站添加到可用的网站,并将上游指向/ appserver / public。这非常有效,资产预编译效果很好,一切都很顺利,我可以重新部署并获得新的资产。它很简单,适用于OS init进程。但是我很幸运,因为nginx配置基本上是静态的,而nginx只需要提供静态文件。

appserver .. unicorn / thin / puma /无论是绊倒我的那个部分。我希望它重新加载cap部署的应用程序,但我很难找到一个足够好的例子。

总结。使用rails应用程序的一种简单方法是重新启动,并在调用cap deploy时重新加载

1 个答案:

答案 0 :(得分:1)

  1. 如果您对Passengernginxunicorn使用thin,则可以在touching tmp/restart.txt file部署后重新启动:

    task :restart do
      on roles(:app), in: :sequence, wait: 5 do
        execute :touch, release_path.join('tmp/restart.txt')
      end
    end
    
  2. 在部署后使用capistrano3-puma重新加载puma服务器:

    的Gemfile:

    gem 'capistrano3-puma'
    

    Capfile:

    require 'capistrano/puma'