Saltar al contenido

Jenkins sudo: no hay tty presente ni programa askpass especificado con NOPASSWD

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.
ingrese la descripción de la imagen aquí


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

  1. sudo su
  2. visudo
  3. tomcat ALL=(ALL) NOPASSWD: ALL #si el usuario que se muestra es Tomcat
    ingrese la descripción de la imagen aquí

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *