El usuario del servicio Jenkins reiniciará el servicio mongodb

El usuario del servicio Jenkins reiniciará el servicio mongodb

Centos 7. Por lo general, cuando me gustaría ejecutar un comando sudo como usuario no root, abro visudo y agrego esta línea en el lugar correcto:

%<userGroup> ALL= NOPASSWD: <command>

cuando quiero reiniciar un servicio, en mi caso actual, mongodb.service con el usuario jenkins, me gustaría hacerlo así:

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

Hasta ahora, todo bien. Luego cambio al usuario jenkins así:

sudo su -s /bin/bash jenkins

Luego pruebo el comando y todo funciona bien. También hago lo mismo con los comandos de parada/estado/inicio y también los pruebo. Eso es todo lo que me gustaría hacer con ellos. El problema es; cuando ejecuto las pruebas con jenkins, llama a estos comandos y no hace nada. Este mongodb es sólo para pruebas, por lo que está bien que sólo se ejecute cuando lo necesitemos. Entonces lo que me gustaría saber es; ¿Cómo hacer que funcione? ¿O cómo poder reiniciar/detener/iniciar el servicio con un usuario del servicio?

Respuesta1

Por si acaso alguien más experimenta el mismo tipo de problema: no recibí ningún mensaje de error para estas cosas, así que decidí poner todo en un archivo de secuencia de comandos y luego darle permiso para ejecutar el archivo de secuencia de comandos con derechos sudo. En ese caso recibí este mensaje de error: "sudo: lo siento, debes tener un tty para ejecutar sudo". Con eso pude localizar el problema con esta solución: https://unix.stackexchange.com/questions/122616/por qué-necesito-a-tty-to-run-sudo-if-i-can-sudo-sin-contraseña

información relacionada