2016-06-02 7 views
7

Я потратил несколько дней на создание archvio /etc/sudoers, чтобы иметь возможность разрешать пользователю root jenkins. У меня есть Jenkins, установленный на моем сервере, потому что у меня есть несколько проектов с symfony, ionic, neo4j и т. Д. Проблема в том, что я не могу строить проекты с ионной, я получаю эту ошибку: sudo: no tty present and no askpass program specified. Это содержание моего/и т.д./файл sudoers:Jenkins sudo: нет tty настоящего и нет программы прошивки, указанной в NOPASSWD

# 
# 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 
jenkins ALL=(ALL) NOPASSWD: ALL 
# Allow members of group sudo to execute any command 
%sudo ALL=(ALL:ALL) ALL 
+1

Пожалуйста, см http://stackoverflow.com/a/24648413/54506 (он говорит о том, что строка должна быть последней в sudoers ..) – Jayan

+1

Возможный дубликат [Как исправить 'sudo: no tty present и no askpass program defined' error?] (Http://stackoverflow.com/questions/21659637/how-to-fix-sudo-no-tty-present-and-no-askpass-program-defined-error) – Jayan

+0

Имейте в виду, что эти настройки 'sudoers' должны быть установлены на определенном узле, где происходит сборка , который не должен быть «мастером». – luka5z

ответ

13

Я проверил решение, описываемое @Jayan в комментариях вопроса. Вы должны включить новую строку в конце файла:

Решение: 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 
0

Это вполне возможно, что вы добавляете неправильный пользователя в файле sudoers. Это случилось со мной, а решение о добавлении записи в файл sudoers не работало для меня. Вам нужно будет знать фактического пользователя, которого используют ваши дженкинсы для выполнения команд. Для этой цели можно добавить шаг сборки (Выполнить оболочку) в ваших Jenkins с помощью следующей команды:

whoami 

Затем попытайтесь снова запустить работу Дженкинс и на выходе консоли вы увидите пользователь, что Дженкинс использует для выполнения команд. Затем вам нужно будет добавить этого пользователя в файл sudoers. Например, если пользователь был «кот», необходимо добавить следующую строку в конец файла sudoers:

tomcat ALL=(ALL) NOPASSWD: ALL 

Ref: http://techrofile.com/jenkins-sudo-no-tty-present-and-no-askpass-program-specified-with-nopasswd/

 Смежные вопросы

  • Нет связанных вопросов^_^