Jenkins sudo: no tty present and no askpass program specified, mit NOPASSWD
Verbringe ich mehrere Tage die Einrichtung der Datei /etc/sudoers
geben zu können Berechtigungen für root an den Benutzer jenkins
. Ich habe Jenkins installiert auf meinem server, da ich mehrere Projekte mit symfony -, Ionen -, neo4j, etc... Das problem ist, dass ich nicht tun kann, bauen Sie in die Projekte mit Ionischen, bekomme ich diesen Fehler:sudo: no tty present and no askpass program specified.
Dies ist der Inhalt meiner /etc/sudoers-Datei:
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
jenkins ALL=(ALL) NOPASSWD: ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
- Bitte siehe stackoverflow.com/a/24648413/54506 (es ist die Rede von einer Linie sollte der Letzte sein in der sudoers ..)
- Möglich, Duplikat der Wie kann man das "sudo: no tty present and no askpass program specified" - Fehler?
- Beachten Sie, dass diese
sudoers
Einstellungen eingestellt werden müssen, um auf bestimmte Knoten, wobei zu bauen, ist passiert, was nicht sein mussmaster
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Getestet hab ich die Lösung beschrieben von @Jayan in den Kommentaren die Frage. Sie müssen die neue Zeile am Ende der Datei:
Lösung: https://stackoverflow.com/a/24648413/54506
Dies ist durchaus möglich, dass Sie hinzufügen einen falschen Benutzer zu den sudoers-Datei. Dies geschah zu mir so gut und die Lösung fügen Sie einen Eintrag in der sudoers-Datei war nicht für mich arbeiten. Sie müssen wissen, dass die tatsächlichen Benutzer, die Ihren jenkins verwenden, um Befehle auszuführen. Für diesen Zweck können Sie einen build-Schritt (Execute shell) innerhalb Ihres jenkins mit dem folgenden Befehl:
Dann versuchen, den jenkins-job wieder und in der Konsole ausgegeben wird, sehen Sie die Benutzer, dass jenkins verwenden, um Befehle auszuführen. Sie müssen dann fügen Sie diese Benutzer auf Ihre sudoers-Datei. Wenn der Benutzer beispielsweise war 'tomcat', fügen Sie die folgende Zeile am Ende der sudoers-Datei:
Ref: http://techrofile.com/jenkins-sudo-no-tty-present-and-no-askpass-program-specified-with-nopasswd/
whoami
und die Anleitung auf gist.github.com/hayderimran7/9246dd195f785cf4783d es gelöst für mich.Dies ist nur eine Reaktion auf näher auf die Schritte zu ergreifen, um das Problem zu beheben.
Erste Sache ist, herauszufinden, welche Benutzer Jenkins GUI verwenden, um führen Sie die bash-shell Skript.
wählen Sie das Projekt > Konfigurieren > geben Sie
whoami
in die ausführbare shell - > speichern Sie und Erstellen Sie Nun."Ergebnis anzeigen" in den build-Verlauf > klicken Sie auf die Ausgabe in der Konsole
Benutzer kann tomcat oder jenkins oder was auch immer.
SSH in Jenkins server
sudo su
visudo
tomcat ALL=(ALL) NOPASSWD: ALL
#wenn Benutzer angezeigt wird, tomcat