Ich versuche, die automatische Bereitstellung für meine Rails-App mit Capistrano einzurichten. Capistrano muss ausgeführt werden sudo kill
, und das habe ich erreicht, ohne dass ich nach einem Kennwort gefragt werde, indem ich die /etc/sudoers
Datei bearbeitet ( visudo
natürlich über ) und die folgende Zeile hinzugefügt habe:
%deployers ALL= NOPASSWD: /bin/kill
Da ich jedoch das RVM-Einzelbenutzer-Setup verwende, bundle
befindet sich die ausführbare Datei unter /home/peddiemarketdeploy/.rvm/gems/ruby-1.9.3-p194/bin/bundle
, daher habe ich in ähnlicher Weise hinzugefügt
%deployers ALL= NOPASSWD: /home/peddiemarketdeploy/.rvm/gems/*
auch in dieser Datei und habe versucht, auszuführen sudo bundle
, aber sudo fragt mich immer noch nach einem Passwort. Da RVM Versionsnummern im Namen von Verzeichnissen verwendet, möchte ich keinen Pfad in fest codieren /etc/sudoers
. Irgendwelche Ideen, wie ich meine sudoers-Datei bearbeiten kann, damit es funktioniert?
Danke!
Antwort1
Verlinkt rvm irgendwie zur aktiven Ruby-Instanz? Das heißt, gibt es eine Art Symlink, /home/peddiemarketdeploy/.rvm/gems/$active
der auf die aktive Version verweist? Wenn ja, dann erlauben Sie sudo für /home/peddiemarketdeploy/.rvm/gems/$active/bin/bundle
. Andernfalls schreiben Sie ein Wrapper-Skript (nicht in der Shell, sondernperloderPython), das die richtige Version auswählt und es den Benutzern ermöglicht, diese mit sudo auszuführen.