2017-10-13 2 views
0

:私は条件付きでスキップする機能を自動化された乗客の宝石のアップグレード処理をしたいのですが乗客のnginxモジュールが正常にコンパイルされたことを確認する最も良い方法は?私はいくつかのサーバーのシェフがでスタックを実行している各を管理している

  • nginxの
  • のPhusion旅客

をパッセンジャーのnginxモジュールのコンパイルの意味私はコンパイルプロセスがすべてのシェフの実行で発生することは望ましくありません。必要があると判断された場合のみ実行されます(通常、パッセンジャーのバージョンがアップグレードされているためです。アップグレードされていないがコンパイルに失敗した以前)。

現在、実行している乗客のバージョンを確認していますが、実際に正しいバージョンにインストールされているのにコンパイルに失敗した場合は、その冪等のチェックが広すぎて、必要なときにコンパイルができません。

乗客の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 

答えて

2

あなたはpassenger-config about compiledを試したことがありますか?

+0

いいえ、私はしていませんでした。それが存在するのを知らなかった!共有してくれてありがとう。しかし、私が 'compiled'について 'passenger-configや' nginx-dynamic-compiledについて 'passenger-configを試してみると、どちらも返りません。 – Ben

+0

彼らは終了コードだけを返す。 ok/yesの場合は0、悪い場合はno/no。 –

+0

ああ、はい、私は終了コード0を取得しています。実際にコンパイルされていないときに正しい終了コードが得られたかどうかをテストするだけです。ありがとう! – Ben

関連する問題