linux - run - Mejores prácticas para evitar el error de Jenkins: sudo: no tty presente y no se especificó el programa askpass
sudo jenkins (2)
La cosa no tty ( requiretty
en sudoers ) es el verdadero problema.
Básicamente, comente las siguientes líneas en su archivo / etc / sudoers :
#Defaults requiretty
#Defaults !visiblepw
Lo anterior se toma de esta respuesta a esta pregunta en el sitio de Unix & Linux Stack Exchange:
Al ejecutar cualquier comando sudo de Jenkins, sudo: no tty present and no askpass program specified
el siguiente error: sudo: no tty present and no askpass program specified
.
Entiendo que puedo resolver esto agregando una entrada NOPASSWD a mi /etc/sudoers
que permitirá al usuario jenkins ejecutar comandos sin necesidad de una contraseña. Puedo agregar una entrada como esta:
%jenkins ALL=(ALL)NOPASSWD:/home/me/dir/script.sh
... pero esto lleva al siguiente problema: https://stackoverflow.com/questions/17414330/how-to-avoid-specifying-full-path-in-sudoers-file
Puedo agregar una entrada como esta:
%jenkins ALL=NOPASSWD: ALL
... pero esto permite a los usuarios jenkins evitar la solicitud de contraseña para TODOS los comandos, lo que parece un poco inseguro. Solo tengo curiosidad sobre cuáles son mis opciones aquí, y si hay algunas mejores prácticas que debería considerar.
Una cosa que puedes hacer es hacer que Jenkins ejecute un script, por ejemplo ''run.sh'', luego desde este script puedes iniciar makefiles y asegurarte de que no haya comandos sudo dentro de los makefiles.
Es un poco molesto, pero al menos no te arriesgas a cambiar la configuración de seguridad