2017-10-13 3 views
0

J'ai plusieurs serveurs le chef géré chacun exécutant une pile avec:La meilleure façon de vérifier que le module passager nginx a été compilé avec succès?

  • nginx
  • passager Phusion

Je voudrais rendre le processus de mise à niveau petit bijou de passagers automatisé avec la possibilité de sauter certaines conditions Compilation du module nginx du passager, ce qui signifie que je ne veux pas que le processus de compilation se produise sur tous les chefs, uniquement sur les courses où il est jugé nécessaire (généralement parce que la version gemme est améliorée, mais aussi dans les cas où ne pas être mis à jour mais la compilation a échoué précédemment). Actuellement, je vérifie la version du passager en cours d'exécution, mais dans les cas où la gemme s'installe réellement à la version correcte mais la compilation échoue, ce contrôle d'idempotence est trop large et je ne parviens pas à compiler quand j'en ai besoin.

Quelle est la manière la plus précise de vérifier que le module passager nginx a été compilé? Existe-t-il un fichier spécifique dans un emplacement stable dont je peux vérifier l'existence?

En ce moment, mon bloc chef ressemble à ceci:

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 

Répondre

2

Avez-vous essayé passenger-config about compiled?

+0

Non, je ne l'avais pas. Je ne savais pas qu'il existait! Merci d'avoir partagé. Cependant, quand j'essaie 'passenger-config about compiled' ou' passenger-config à propos de nginx-dynamic-compiled', les deux ne renvoient rien. – Ben

+0

Ils "retournent" seulement un code de sortie. 0 pour ok/oui non-0 pour mauvais/non. –

+0

Ah, d'accord, je vois, oui, je reçois le code de sortie 0. Juste besoin de tester si je reçois un code de sortie approprié pour quand il n'est pas compilé. Merci! – Ben