验证乘客nginx模块是否已成功编译的最佳方法?

时间:2017-10-13 12:12:04

标签: nginx chef passenger

我有几个主厨管理每个运行堆栈的服务器:

  • nginx的
  • phusion passenger

我想让乘客宝石升级过程自动化,能够有条件地跳过乘客nginx模块编译,这意味着我不希望编译过程在每次厨师运行时发生,只有在确定它的运行中是必要的(通常是因为乘客宝石版本正在升级,但是在乘客宝石未升级但之前编译失败的情况下也是如此)。

目前我检查正在运行的乘客的版本,但是在宝石实际安装到正确版本但编译失败的情况下,该幂等性检查过于宽泛,当我需要时,我无法进行编译尝试。 / p>

验证乘客nginx模块已编译的最准确方法是什么?在稳定的位置是否有特定文件,我可以检查它的存在?

现在我的厨师块看起来像这样:

execute "compile passenger nginx module" do
    ruby_vers = node[:ruby][:global_version]
    passenger_vers = node[:passenger][:version]
    ruby_parent_vers = node[:ruby_parent_vers]
  command "export ORIG_PATH=\"$PATH\"; sudo -s -E; export PATH=\"$ORIG_PATH\"; /usr/bin/ruby /usr/lib/ruby/gems/2.4.0/gems/passenger-#{passenger_vers}/bin/passenger-install-nginx-module --auto --auto-download"
  # check for a difference between passenger version requested and passenger version running
  not_if { `passenger --version` == cur_vers }
end

1 个答案:

答案 0 :(得分:2)

您是否尝试过passenger-config about compiled