18 Stimmen

Capistrano hängt bei der Abfrage des SUDO-Passworts auf einer Ubuntu-Box

Ich habe ein Capistrano-Bereitstellungsrezept, das ich seit einiger Zeit verwende, um meine Webanwendung bereitzustellen und dann apache/nginx mit dem sudo-Befehl neu zu starten. Seit kurzem bleibt cap deploy hängen, wenn ich versuche, diese sudo-Befehle auszuführen. Ich sehe die Ausgabe: "[sudo] Passwort für " mit meinem Servernamen und dem Remote-Login, aber dies ist keine sichere Anmeldeaufforderung. Die cap-Shell bleibt einfach hängen und wartet auf weitere Ausgaben und erlaubt mir nicht, mein Passwort einzugeben, um den sudo-Befehl auszuführen.

Gibt es eine Möglichkeit, dieses Problem zu beheben oder eine vernünftige Lösung dafür? Ich wollte die sudo-Passwortabfrage meines Remote-Benutzers für Web-Neustart-Befehle nicht entfernen.

32voto

wulong Punkte 2617

Dies scheint auch bei der Verbindung mit CentOS-Maschinen zu passieren. Fügen Sie die folgende Zeile in Ihre Capistrano-Deploy-Datei ein:

default_run_options[:pty] = true

Achten Sie auch darauf, dass Sie die sudo Hilfsprogramm statt der Ausführung von sudo direkt in Ihre Ausführungsbefehle ein. Zum Beispiel:

# not
run "sudo chown root:root /etc/my.cnf"

# but
sudo "chown root:root /etc/my.cnf"

2voto

MikeN Punkte 42229

Die anderen Ratschläge mögen vernünftig sein, aber ich habe festgestellt, dass das Problem verschwunden ist, nachdem ich auf Capistrano 2.5.3 aktualisiert habe. Ich muss sicherstellen, dass ich die Standardversionen der Tools, die mit meinem Betriebssystem geliefert wurden, nicht mehr ausführe.

2voto

lemats Punkte 596
# prevent sudo prompting for password
set :sudo_prompt, ""

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X