Permitir que jenkins ejecute comandos como root

Permitir que jenkins ejecute comandos como root

Tengo un servidor jenkins que inicia sesión en mi servidor de producción a través de ssh y se supone que debe reiniciar algunos servicios con systemctl restart myservice.service

He leído problemas similares y la solución más común fue esta:

jenkins ALL = NOPASSWD: /bin/systemctl restart myservice.service, /bin/systemctl restart myservice2.service

e insértelo en el archivo sudoers.

También he añadido

Defaults:jenkins !requiretty

Mi archivo de implementación hace esto:

sudo /bin/systemctl restart myservice.service

y luego, a pesar de mis esfuerzos, sigo recibiendo el siguiente error:

sudo: no tty present and no askpass program specified

He leído sobre el uso de -t al realizar ssh, pero no estoy seguro de cómo lo haría, ya que hago varios comandos y algunos no son comandos sudo.

Entonces, ¿alguien tiene una buena solución para permitir que jenkins reinicie mis servicios? Me gustaría evitar que jenkins use root como usuario principal.

Editar:

Este fue un problema de mi lado. Mi jenkins se conectó a otro servidor y no inició sesión como "jenkins", por lo que estaba cambiando los permisos para el usuario equivocado. La solución con

jenkins ALL = NOPASSWD: /bin/systemctl restart myservice.service, /bin/systemctl restart myservice2.service

funciona bien siempre que sea el usuario adecuado.

información relacionada