Después de de una extensa compilación de datos pudimos resolver esta problema que suelen tener muchos los usuarios. Te brindamos la solución y nuestro objetivo es servirte de mucha ayuda.
Solución:
Probé la solución descrita por @Jayan en los comentarios de la pregunta. Debe incluir la nueva línea al final del archivo:
Solución: https://stackoverflow.com/a/24648413/54506
#
# 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
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
jenkins ALL=(ALL) NOPASSWD: ALL
Esta es solo una respuesta para explicar los pasos a seguir para solucionar el problema.
En primer lugar, averigüe qué usuario está utilizando la GUI de Jenkins para ejecutar el script bash shell.
seleccione el proyecto > Configurar > entrar whoami
en el shell ejecutable > guardar y compilar ahora.
Ver el resultado en el historial de compilación > hacer clic en la salida de la consola
El usuario puede ser Tomcat o Jenkins o lo que sea.
SSH en el servidor Jenkins
sudo su
visudo
tomcat ALL=(ALL) NOPASSWD: ALL
#si el usuario que se muestra es Tomcat
Es muy posible que esté agregando un usuario incorrecto al archivo sudoers. Esto también me sucedió a mí y la solución para agregar una entrada en el archivo sudoers no funcionó para mí. Deberá conocer el usuario real que utiliza su jenkins para ejecutar comandos. Para este propósito, puede agregar un paso de compilación (Execute shell) dentro de su jenkins con el siguiente comando:
whoami
Luego intente ejecutar el trabajo de jenkins nuevamente y en la salida de la consola, verá el usuario que jenkins está usando para ejecutar comandos. Luego deberá agregar este usuario a su archivo sudoers. Por ejemplo, si el usuario era ‘tomcat’, agregará la siguiente línea al final de su archivo sudoers:
tomcat ALL=(ALL) NOPASSWD: ALL
Ref: http://techrofile.com/jenkins-sudo-no-tty-present-and-no-askpass-program-specified-with-nopasswd/
Recuerda que te brindamos la opción de reseñar tu experiencia si te fue preciso.