Jenkins-Dienstbenutzer zum Neustarten des MongoDB-Dienstes

Jenkins-Dienstbenutzer zum Neustarten des MongoDB-Dienstes

Centos 7. Wenn ich als Nicht-Root-Benutzer einen Sudo-Befehl ausführen möchte, öffne ich normalerweise Visudo und füge diese Zeile an der richtigen Stelle ein:

%<userGroup> ALL= NOPASSWD: <command>

Wenn ich einen Dienst neu starten möchte – in meinem aktuellen Fall mongodb.service mit dem Jenkins-Benutzer – möchte ich dies folgendermaßen tun:

%jenkins ALL= NOPASSWD: /usr/bin/systemctl restart mongod.service

So weit, so gut. Dann wechsle ich wie folgt zum Jenkins-Benutzer:

sudo su -s /bin/bash jenkins

Dann teste ich den Befehl und alles funktioniert einwandfrei. Dasselbe mache ich auch mit den Befehlen stop/status/start und teste sie auch. Das ist alles, was ich damit machen möchte. Das Problem ist: Wenn ich die Tests mit Jenkins ausführe, ruft es diese Befehle auf und tut nichts. Dieses MongoDB ist nur zum Testen gedacht, also ist es in Ordnung, dass es nur ausgeführt wird, wenn wir es brauchen. Was ich also gerne wissen würde, ist: Wie bringt man es zum Laufen? Oder wie kann man den Dienst mit einem Dienstbenutzer neu starten/stoppen/starten?

Antwort1

Nur für den Fall, dass jemand anders das gleiche Problem hat: Ich habe keine Fehlermeldung für diese Dinge erhalten, also habe ich beschlossen, alles in eine Skriptdatei zu packen und dann die Berechtigung zum Ausführen der Skriptdatei mit Sudo-Rechten zu erteilen. In diesem Fall habe ich diese Fehlermeldung erhalten: „sudo: Entschuldigung, Sie müssen über ein TTY verfügen, um Sudo auszuführen“. Damit konnte ich das Problem mit dieser Lösung aufspüren: https://unix.stackexchange.com/questions/122616/warum-brauche-ich-ein-tty-um-sudo-auszuführen-wenn-ich-sudo-ohne-passwort-ausführen-kann

verwandte Informationen