2013-07-01 21 views
24

Beim Ausführen eines beliebigen Befehls sudo von Jenkins bekomme ich den folgenden Fehler: sudo: no tty present and no askpass program specified.Best Practices zur Vermeidung von Jenkins-Fehler: sudo: no tty vorhanden und kein askpass-Programm angegeben

Ich verstehe, dass ich dies durch Hinzufügen eines NOPASSWD Eintrag meiner /etc/sudoers Datei lösen kann, die Benutzer jenkins ermöglicht, Befehle auszuführen, ohne ein Passwort zu benötigen. Ich kann einen Eintrag wie folgt hinzu:

%jenkins ALL=(ALL)NOPASSWD:/home/me/dir/script.sh 

... aber dies führt zu folgendem Problem: https://stackoverflow.com/questions/17414330/how-to-avoid-specifying-full-path-in-sudoers-file

Ich kann einen Eintrag wie folgt hinzu:

%jenkins ALL=NOPASSWD: ALL 

... aber dies erlaubt dem Benutzer jenkins, die Passwortabfrage für ALL Befehle zu vermeiden, was ein wenig unsicher erscheint. Ich bin nur neugierig, was meine Möglichkeiten sind, und wenn es irgendwelche Best Practices gibt, sollte ich darüber nachdenken.

+0

Ich konnte nicht bekommen, die mit diesem Befehl Datei, die Sie ändern? % jenkins ALL = (ALL) NOPASSWD: /home/vts_share/test/sudotest.sh ich sudo-Befehl zu verwenden, auch in jenkins versuchen, so muß ich wissen, welche Datei ich diesen Befehl ausführen sollte? – MeM

+0

Es war eine bestimmte Datei auf meinem Rechner, ich habe den Beitrag bearbeitet, um eine generische Datei anzuzeigen –

Antwort

4

On Sie können Jenkins dazu bringen, ein Skript auszuführen, zum Beispiel 'run.sh', , dann können Sie innerhalb dieses Skripts Makefiles starten und sicherstellen, dass es keine sudo-Befehle in den Makefiles gibt.

Es ist ein bisschen umständlich, aber zumindest Sie riskieren nicht zu ändern Sicherheitseinstellungen